java中可以通过类的class属性得到该类的字节码文件对象?
ringa_lee
ringa_lee 2017-04-18 10:50:41
0
2
586


Class c1 = Student.class;
可是无论是Student类还是它继承的Object类都没有class属性呀?

ringa_lee
ringa_lee

ringa_lee

모든 응답(2)
巴扎黑

초대해주셔서 감사합니다.

먼저 오류를 수정하세요. 클래스는 Student 클래스의 정적 멤버가 아니라 키워드입니다. .class는 Java의 특정 구문입니다.

둘째, 이 클래스의 바이트코드 파일을 얻으려면 파일 시스템으로 가서 찾아야 하는데, 이는 매우 번거로운 Student.class.getResource/getResourceAsStream과 같은 메소드에 지나지 않습니다. asm, cglib 등의 바이트코드 오픈소스 프로젝트를 살펴보는 것이 좋습니다.

마지막으로 바이트코드는 상대적으로 복잡한 기술이므로 메소드 매개변수에서 Annotation을 얻는 등 최후의 수단으로 사용해야 합니다(Spring Web MVC 참조). 바이트코드와 관련이 있는 것처럼 보이는 일부 기술은 실제로 우회될 수 있습니다. 예를 들어 인터페이스 기반 AOP는 바이트코드 대신 프록시를 사용하여 구현할 수 있습니다.

大家讲道理

제가 확인한 한 가지 이론은 이것이 키워드가 아니라 리터럴 값이라는 것입니다. IDE에서 직접 "Student.class"를 입력해 보면 이 값을 변수에 할당해야 한다는 것을 알 수 있습니다. . 나중에 새로운 것을 찾으면 추가하겠습니다. 클래스 로딩에 대해서는 내 블로그 Customized Class Loader - Reading from .class and .jar

를 참조하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿