2011-10-20 2 views
2

필자는 더 이상 회사와 더 이상 다른 사람이 작성한 코드를 유지해야합니다. java.lang.reflect.Array.getLength(anArray)에 대한 여러 참조가 나타납니다. 그 작동하지만, 나는 반사 길이 배열을 얻는 데 사용되는 것을 본 적이 없어.java java.lang.reflect.Array.getLength vs array.length

java.lang.reflect.Array.getLength(anArray)anArray.length

그냥 문법 설탕이다 : 사람 사이의 차이를 알고 있나요?

감사합니다.

답변

8

anArray인 경우 배열 유형에을 정적으로 입력하면 anArray.length (메소드 호출이 아닌 btw)을 사용해야합니다. 배열에 대한 참조가 Object 인 경우 반사 양식을 사용합니다.

6

이것은 배열의 길이를 얻는 속임수입니다. 원시 배열 또는 객체 배열 일 수 있습니다. 이를 통해 두 배열 유형 모두에서 작동하는 메소드를 작성할 수 있습니다.

void print(Object array) { 
    for (int i = 0; i < Array.getLength(array); i++) { 
     System.out.println(Array.get(array, i)); 
    } 
} 

이것은 [] INT 작동 또는 [] 매개 개체 것이다

배열의 임의의 타입의 컨텐츠를 인쇄하는 방법을 고려한다.

그렇지 않으면 단지 .length 정적 필드를 사용해야합니다.