如
Class c1 = Student.class;
可是无论是Student类还是它继承的Object类都没有class属性呀?
巴扎黑2017-04-18 10:52:41
초대해주셔서 감사합니다.
먼저 오류를 수정하세요. 클래스는 Student 클래스의 정적 멤버가 아니라 키워드입니다.
둘째, 이 클래스의 바이트코드 파일을 얻으려면 파일 시스템으로 가서 찾아야 하는데, 이는 매우 번거로운 Student.class.getResource/getResourceAsStream과 같은 메소드에 지나지 않습니다. asm, cglib 등의 바이트코드 오픈소스 프로젝트를 살펴보는 것이 좋습니다.
마지막으로 바이트코드는 상대적으로 복잡한 기술이므로 메소드 매개변수에서 Annotation을 얻는 등 최후의 수단으로 사용해야 합니다(Spring Web MVC 참조). 바이트코드와 관련이 있는 것처럼 보이는 일부 기술은 실제로 우회될 수 있습니다. 예를 들어 인터페이스 기반 AOP는 바이트코드 대신 프록시를 사용하여 구현할 수 있습니다.
大家讲道理2017-04-18 10:52:41
제가 확인한 한 가지 이론은 이것이 키워드가 아니라 리터럴 값이라는 것입니다. IDE에서 직접 "Student.class"를 입력해 보면 이 값을 변수에 할당해야 한다는 것을 알 수 있습니다. . 나중에 새로운 것을 찾으면 추가하겠습니다. 클래스 로딩에 대해서는 내 블로그 Customized Class Loader - Reading from .class and .jar
를 참조하세요.