자바 반사:배열

더 읽 기
java.lang.reflect.Array
   자바 반사 메커니즘 통과
배열 클래스 로 배열 을 처리 하고 결합 합 니 다.
java.lang.Class 클래스 는 실행 중 그룹 에 대한 정 보 를 얻 을 수 있 습 니 다.집합 가방 에 있 는 거 랑.
java.util.Arrays 구분,Arrays 클래스 는 하나 입 니 다.
배열 도구 류(정렬,배열 을 옮 겨 다 니 며 배열 을 집합 으로 변환 하 는 등).
실례 화 배열
컴 파일 할 때 배열 의 형식(예 를 들 어 int 형식)을 알 면 new 키 워드 를 사용 하여 예화 합 니 다.

float[] array = new float[3];

반사 도 사용 할 수 있다.

float[] array = Array.newInstance(float.class, 3);

new 키워드 와 유사 합 니 다.이 예 는 float 형식의 배열 을 만 들 었 습 니 다.
실행 할 때 유형 을 알 수 있다 면 다음 방법 을 사용 하 십시오.

Object array = Array.newInstance(componentType, length);

Array.newInstance()의 첫 번 째 매개 변 수 는 어떤 종류의 배열 을 만 들 것 인 지 를 표시 하고,두 번 째 매개 변 수 는 배열 의 크기 를 표시 합 니 다.
접근 배열
배열 을 만 들 면 배열 의 요 소 를 Array.set()와 Array.get()을 통 해 설정 하고 가 져 올 수 있 습 니 다.

float[] array = (float[]) Array.newInstance(float.class, 3);
Array.set(array, 0, 16.0f);
Array.set(array, 1, 12.4f);
Array.set(array, 2, 16.4f);

System.out.format("array[0]=%f
", Array.get(array, 0)); System.out.format("array[1]=%f
", Array.get(array, 1)); System.out.format("array[2]=%f
", Array.get(array, 2));

출력:
array[0]=16.000000
array[1]=12.400000
array[2]=16.400000
들 어 오 는 대상 이 배열 인지 아 닌 지 를 판단 하 다.

// obj is the instance passed in running time
boolean bArray = obj.getClass().isArray();

배열 의 길 이 를 얻다.

// obj is the instance passed in running time
int length = java.lang.reflect.Array.getLength(obj);

배열 요소 의 유형 을 판단 합 니 다.

// obj is the instance passed in running time
Class elementType = obj.getClass().getComponentType();

좋은 웹페이지 즐겨찾기