Eclipse 3.1 및 J2SE 5.0 시작하기

Eclipse 3.1에는 J2SE 5.0(코드 이름 "Tiger")의 새 기능에 대한 전체 지원이 포함되어 있습니다. 이 지원에 대한 가장 중요한 결과 중 하나는 전혀 주의하지 않아도 된다는 것입니다. J2SE 1.4에 대해 작동할 것으로 예상되는 모든 것(편집, 컴파일, 디버깅, 빠른 수정, 리팩토링, 소스 조치, 검색 등)은 J2SE 5.0의 새 유형 및 구문에 대해서도 한결같이 작동합니다. 이 문서에서는 J2SE 5.0에서 작업할 때 Eclipse 사용자가 경험하게 될 많은 흥미로운 기능 중 일부를 소개합니다.

전제조건

J2SE 5.0을 따르는 코드를 개발하려면 J2SE 5.0 JRE(Java Runtime Environment)가 필요합니다. J2SE 5.0 JRE를 사용하여 처음 Eclipse를 시작할 경우 Eclipse는 기본적으로 이 JRE를 사용합니다. 그렇지 않으면 설치된 JRE 대화 상자를 사용하여(창 > 환경 설정 > Java > 설치된 JRE) Eclipse에 대해 등록해야 합니다.

이 문서는 J2SE 5.0에서 새로운 언어 기능 중 일부를 소개하지만 이 기능들에 대해 적절한 학습서는 아닙니다.

컴파일러 준수 레벨

새 J2SE 5.0 기능을 사용하려면 5.0 준수 레벨이 사용되는 프로젝트에서 작업해야 합니다. 새 프로젝트는 새로 작성 > 프로젝트 마법사의 첫 번째 페이지에서 쉽게 5.0 준수 상태로 표시할 수 있습니다.

새 프로젝트 마법사

기존의 J2SE 1.4 프로젝트를 J2SE 5.0으로 변환하려면 다음을 수행하면 됩니다.
  1. J2SE 5.0 JRE가 설치되어 있는지 확인하십시오.
  2. 코드에서 5.0 기능 사용을 시작하십시오.
  3. 컴파일러 오류 플래그가 표시될 경우 빠른 수정을 사용하여 프로젝트의 준수 레벨을 갱신하십시오.

    J2SE 5.0을 사용하기 위한 빠른 수정

더 자세하게 조정된 제어의 경우, 컴파일러 준수 레벨은 작업공간에 대해 전체적으로(창 > 환경 설정 > Java > 컴파일러), 또는 각 프로젝트에 개별적으로(프로젝트의 컨텍스트 메뉴에서 특성 > Java 컴파일러 선택) 설정할 수 있습니다. 준수 레벨이 다른 프로젝트가 작업공간에 상호 존재하고 서로 의존할 수 있습니다. 특성 > Java 컴파일러 > 오류/경고 > J2SE 5.0 옵션을 사용하여 프로젝트마다 생성되는 컴파일러 오류 및 경고 종류를 세부 조정할 수도 있습니다.

일반 유형

일반 유형을 사용하면 동일 클래스의 오브젝트가 여러 유형의 오브젝트에 대해 안전하게 작동할 수 있습니다. 예를 들어, 일반 유형은 목록<문자열>에는 항상 문자열이 포함되고 목록<정수>에는 항상 정수가 포함되는 컴파일 시 보증을 허용합니다.

Eclipse가 일반 유형이 아닌 다른 유형을 처리할 수 있다면 일반 유형도 처리할 수 있습니다.

또한 새 리팩토링이 추가되었습니다. 일반 유형 인수 추측은 클래스, 패키지 또는 전체 프로젝트에서 모든 유형 참조에 대해 유형 매개변수를 추측할 수 있습니다.

일반 유형 인수 추측 호출

리팩토링을 호출하면 다음이 생성됩니다.

호출된 일반 유형 인수 추측

Eclipse 3.1은 일반 유형에 대한 참조를 검색할 때 새 옵션을 제공합니다. 다음 예제를 고려하십시오.

네 가지의 서로 다른 매개변수화 인스턴스 작성 사항으로 이루어진 목록이 있는 예제

목록<정수>에 대한 참조를 선택하고 검색 > 참조 > 프로젝트를 사용하면 네 개의 행 모두에서 목록 유형이 강조표시됩니다.

필터가 없는 검색

검색 보기 메뉴를 사용하면 결과를 필터할 수 있습니다.

호환 불가능 필터는 지정사항인 선택된 유형과 호환 가능한 유형에 대한 참조만 남겨둡니다.

필터 호환 불가능

부정확 필터는 정확히 같은 서명을 가지고 있는 유형 참조만 남겨둡니다.

부정확 필터

어노테이션

어노테이션은 Java 유형 및 메소드를 사용하고 Java 소스에 이 유형 및 메소드를 제시하는 방법에 관한 메타데이터를 첨부하므로 컴파일에 영향을 주거나 런타임 시 조회할 수 있습니다. 예를 들어, @Override는 어노테이션이 있는 메소드가 수퍼클래스의 메소드를 대체할 수 없을 경우 컴파일러 경고를 트리거합니다.

어노테이션 대체

Java 유형에 대해 수행할 수 있는 모든 것을 어노테이션에 대해서도 수행할 수 있습니다.

Eclipse에서 전체 지원을 가지고 있는 아주 유용한 어노테이션은 @SuppressWarnings입니다. 예를 들어, 현재 사용하지 않지만 삭제하지 않은 개인 메소드를 고려해 보십시오.

경고: 사용하지 않는 개인 메소드

경고 시 빠른 수정을 호출하면 @SuppressWarnings 어노테이션 추가를 제안합니다.

SuppressWarnings 제안

빠른 수정을 선택하면 어노테이션이 추가됩니다. Eclipse 컴파일러는 foo에 대한 경고를 제거하여 어노테이션을 받아들입니다.

SuppressWarnings 삽입

열거

열거는 알려진 유한 개의 오브젝트 세트에 의해 런타임 시 인스턴스가 작성되는 유형입니다.

열거 유형

Java 클래스에 대해 수행할 수 있는 모든 값을 열거에 대해 수행할 수 있습니다.

자동 상자 작성

오토박싱(autoboxing) 및 오토언박싱(autounboxing)은 오브젝트 참조에 기본 유형이 지정되거나 오브젝트 참조에서 기본 유형이 검색될 때 멋진 구문에 대해 허용됩니다.

오토박싱 강조표시

Eclipse의 소스 조작 기능은 오토박싱을 제대로 처리하여 새 로컬 변수 및 해당되는 코드 지원에 올바른 유형을 제공합니다. 코드 이해를 위해, 오토박싱 또는 오토언박싱 인스턴스에 컴파일 경고로 플래그를 달거나(창 > 환경 설정 > Java > 컴파일러 > 오류/경고 > J2SE 5.0 옵션 > 박싱 및 언박싱 변환), 구문 색상 지정을 사용하여 강조표시할 수 있습니다(창 > 환경 설정 > Java > 편집기 > 구문 색상 지정 > Java > 오토박싱된 표현식).

오토박싱에 대해 강조표시 사용

확장 for 루프

배열 또는 콜렉션의 각 요소에 대해 작동하는 일반적인 경우, J2SE 5.0은 더 명확한 새 구문을 허용합니다. Eclipse 3.1은 콜렉션 반복을 자동으로 짐작할 수 있는 "foreach" 코드 템플리트를 제공합니다.

foreach 템플리트 제안

템플리트를 선택하면 다음이 생성됩니다.

foreach 템플리트 삽입

Eclipse 3.1은 또한 가능할 경우 1.4 스타일 for 루프를 업그레이드하기 위한 "확장 for 루프로 변환" 빠른 지원도 제공합니다.

기타

J2SE 5.0의 다른 모든 기능은 Eclipse의 편집, 검색 및 코드 조작 도구에 의해 융통성 있게 처리됩니다.