클래스 파일 버전 49 (자바 5) 이상을 만들려한다고 가정하면, 필요한 명령의 순서는 다음과 같습니다
iconst_1
anewarray
java/lang/Class
dup
iconst_0
ldc
java.lang.String.class
aastore
이제 남은 유일한 질문은 BCEL에 그것을 생성하는 방법입니다. 내가 its website에서 본 것을에 따르면, 발전기 코드는 다음과 같이 보일 수 있습니다 :
il.append(InstructionConstants.ICONST_1);
il.append(factory.createNewArray(Type.getType(Class.class), 1));
il.append(InstructionConstants.DUP);
il.append(InstructionConstants.ICONST_0);
il.append(new LDC(constantPoolGen.addClass(Type.getType(String.class))));
il.append(InstructionConstants.AASTORE);
나는 그것을 테스트하지 않았습니다 있지만.
감사합니다. ClassGenException : Illegal type : class org.apache.bcel.generic.ObjectType – entzik
'factory.createConstant'는'Class' 상수를 생성 할 수 없습니다. 그러나 나는 급히 다른 실수를 저질렀다. 나는 그들을 지금 고쳤다. – Holger
그게 내가 찾고 있었어, 고마워, 정말 고마워. – entzik