를 통해 자바 클래스가 아닌 최종 만들기 나는 하나 다음과 같은 자바 클래스가 그러나 이것도 수업에도 가능합니까? 런타임에 최종 클래스를 최종 클래스가 아닌 클래스로 변환 할 수 있습니까?반사 API
Q
반사 API
6
A
답변
4
ASM과 같은 라이브러리를 사용하여 클래스 파일을 다시 쓸 수 있습니다.
런타임시 서브 클래스를 컴파일 할 때 컴파일 타임에 비 최종적 일 필요가 있으므로 final
클래스의 상태를 변경할 필요가 없습니다.
1
컴파일러가 컴파일 타임에 비 최종적으로하려고하는 클래스인지 확인하기 때문에 어떻게 작동하는지 알 수 없습니다. 당신이 그것을 상속하려고하면 오류가 발생합니다.
내가 궁금한 점이 있다면 물어 보는 것이 좋겠지 만 자신에게 물어 보는 더 큰 질문은 왜 이것을하고 싶습니까? 리플렉션을 사용하면 최종 목표, 비공개 목표 등 다양한 목표를 달성 할 수 있지만 좋은 아이디어는 아닙니다. 제 3 자 라이브러리의 설계자가 최종 결론이 좋은 아이디어라고 생각한다면,이를 존중하는 것이 좋습니다.
관련 문제
- 1. 범용 반사 API?
- 2. 자바 반사 콩 속성 API
- 3. 반사
- 4. 반사
- 5. 반사
- 6. 반사
- 7. 반사
- 8. 반사
- 9. 반사
- 10. 반사 과부하. 반사 varargs 메서드에 대한 반사 배열 채우기
- 11. 람다 식 계 반사
- 12. 스프라이트 반사?
- 13. ImageMagick이 반사
- 14. 자바에서의 반사
- 15. 반사 구체화
- 16. .NET 반사 -
- 17. 반사 + LINQ
- 18. 반사 기초
- 19. 자바 반사 :
- 20. TDD에서 반사
- 21. DLL 반사?
- 22. 효율성 반사
- 23. 반사 된 속성에서 반사 된 값의 값 검색
- 24. 내가 반사 사용하여 엔티티 프레임 워크 객체의 인스턴스를 만들려고하고 반사
- 25. 자바 반사 나쁜 패턴?
- 26. 반사 유형 대 TypeDescriptor
- 27. 반사 난에 질문 물었다
- 28. 반사, 제네릭 여러 어셈블리
- 29. 이러한 방법의 예외 - 반사
- 30. 스칼라 반사, asInstanceOf
유스 케이스 user982247을 염두에두고 있지만 객체를 프록시하려고하면 컴파일 타임에 문제가 발생하지 않고 런타임에 클래스를 최종이 아닌 것으로 변경하려고 할 수있는 한 가지 이유가 있습니다. –