JDK5.0 새로운 기능: 기타

3665 단어

JDK5.0 새로운 기능: 기타


문/진강 2005-11-26
1. 자동 포장 및 해체
이것은 매우 적절한 개선이다.JDK에서 5.0 이전에 우리는 아래의 코드를 자주 보았다.
        Vector v=new Vector();        v.add(new Integer(1));
Vector 때문에.dd는 대상만 받아들이고 1은 대상이 아니기 때문에 우리는 정수 1을 Integer 대상에 포장해야 한다. 정말 번거롭다. (이제 우리는 이렇게 할 수 있다. 많이 편리하지 않겠니? 다음과 같다.
        Vector v=new Vector(1);        v.add(1);
2. 새로운 for 순환
앞에서 열거할 때 이미 사용했으니 입면 코드를 다시 한 번 붙여 넣으세요. 아래와 같습니다.
        Color[] colors = Color.values();
        for (Color c : colors) {
            System.out.println("color value=" + c.getColorValue());
        }

주의: Color[]가 배열이라고 생각하지 말고 for-each 순환이 배열에만 적용된다고 생각하지 마십시오. 집합(List, Set)과 마찬가지로 다음과 같습니다.
        List<String> list = new ArrayList<String>();
        for (String str : list) {
            System.out.println(str);
        }

3. 매개 변수 개수의 가변성
매개 변수의 개수는 가변적입니다. 아래 코드의test 방법은 int형의 가변 매개 변수입니다. 물론 매개 변수를 String, Object 등으로 설정할 수 있습니다.
public class Test {
    public static void main(String[] args) {
        test();
        test(1);
        test(2, 3, 4);
    }
    public static void test(int... ints) {
        for (int i : ints) {
            System.out.println(i);
        }
    }
}

4. 정적 참조
정적 참조란 무엇인지, 다음 코드를 먼저 보십시오.
package jdk5;
public class Model {
    public static void operate() {}
    public static String ABC;
}

모델 클래스에는 정적 방법인 Operate와 정적 변수 (정적 이어야 함) 가 있는데, 이것은 매우 일반적인 클래스이다.다음 Test 클래스는 좀 이상합니다.
package jdk5;
import static jdk5.Model.ABC;
import static jdk5.Model.operate;
public class Test {
    public static void test() {
        operate();
        String s = ABC;
    }
}

그런 이상한 점이 있을까요?
(1)import 뒤에 static (2)jdk5.Model 뒤에 방법operate와 변수 ABC가 많이 쓰여 있습니다.
위의 이상한 문법이 생기면 Test 클래스에서 import static 방법을 사용하면 변수는 로컬 방법과 변수처럼 사용할 수 있습니다.
5. C 스타일 포맷 출력
이전에 우리는 이곳에서 코드를 썼다.
    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        int sum = x + y;
        System.out.printf(x + " + " + y + " = " + sum);
    }

JDK에서 5.0이 되면 코드는 다음과 같이 작성됩니다.
    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        int sum = x + y;
        System.out.printf("%d + %d = %d", x, y, sum);
    }

두 코드의 효과는 모두 같은'10+20=30'이지만 두 번째 C 스타일의 문법은 훨씬 쉽게 읽을 수 있다는 것을 보여준다.
6. 메타데이터(메모)
JDK5입니다.0 XDoclt를 배웠는데 주석이 있어서 앞으로 우리는 인터페이스를 쓰지 않아도 된다. EJB는 쓰기에 매우 편리할 것이다.EJB3.0 작법을 간소화하고 주석은 약간의 공로를 차지해야 한다.
자주 사용하는 메모 설명: @Override 예:
public class Test extends ATest{

@Override
    public void test() {
    }
}

방법 앞에 이 주석을 붙이면 Test를 한정합니다. 이 방법은 ATEST의 방법인 Test를 덮어써야 합니다. 그렇지 않으면 오류가 발생합니다.예를 들어 방법test()를tesd()로 쓰지 않으면 컴파일할 때 오류가 발생합니다.또 하나 주의해야 할 것은 @Override는 인터페이스를 덮어쓰는 방법을 정의하는 데 사용됩니다. 즉, Atest는 추상적인 클래스, 일반적인 클래스이어야 하지만 인터페이스가 될 수 없습니다.
또 다른 흔히 볼 수 있는 주석은 @Deprecated입니다. 이 항목 (클래스, 필드, 방법) 이 더 이상 추천되지 않음을 나타냅니다.그러나 우리 스스로는 일반적으로 이 주해를 거의 쓰지 않는다.
자, 주해는 이 두 개만 하자. 너무 많이 알 필요도 없고, 개념을 알고 있으니, 나중에 쓸 때 다시 이야기하자.주석에 관해서는 프로젝트 개발에서 매우 유용한 소스 오픈 도구인 XDoclt를 보십시오.
저자: 김종국
진강, 광서계림 사람, 저서에는'이클립스 입문에서 정통까지'가 있습니다. 당신은 블로그를 통해 더 많은 정보와 글을 알 수 있습니다.http://www.chengang.com.cn

좋은 웹페이지 즐겨찾기