2014-11-05 4 views
0

Java 응용 프로그램 내에서 실행되는 JavaScript 코드의 반사 방법을 사용하여 java.lang.String 유형의 2 차원 배열을 작성해야합니다 스크립팅 엔진). 이 배열은 함수 호출 후에 JavaCode에서 사용되는 반환 값 (javaScript 함수의 값)이됩니다.java.lang.reflect.Array.newInstance를 사용하여 자바 리플렉션을 사용하여 2 차원 배열을 작성하십시오.

function test() { 
    var a = java.lang.reflect.Array.newInstance(?, ?); 
    // fill the array 
    return a; 
} 

나는 String 형의 2 개 diemnsional 배열을 만들 수있는 newInstance 호출에 대한 올바른 매개 변수를 찾을 수 없습니다.

현재 임시 해결책으로 작업하고 있습니다. 즉, 크기가 x 인 java.lang.Object 유형의 (외부) 배열을 만들고 x 길이 루프 안에 할당 된 크기 y가 각각 java.lang.String 인 다중 배열을 만듭니다 'outer'배열 요소에 적용됩니다.

더 쉬운 방법이 있습니까?

답변

1

당신은 클래스와 치수를 입력하기 만하면됩니다 : newInstance(Class<?> componentType, int... dimensions) 더 javadoc 내에서 읽기

var a = java.lang.reflect.Array.newInstance(String.class, x, y); 

.

+0

감사합니다. 필자는 refelction API 문서를 충분히 읽지 못했습니다. 그것은 완벽하게 작동합니다! – Tom

관련 문제