-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
왜 final 을 사용하면 안될까요!?
21.03.03 20:20 작성 조회수 753
2
@Entity에는 final 클래스를 필드에도 사용하지 말라고 하셨는데 이유가 뭔지 궁금합니다.
답변을 작성해보세요.
5
김영한
지식공유자2021.03.04
안녕하세요. jsungmin6님
JPA 구현체들은 엔티티를 내부에서 다양한 방식으로 사용합니다.
예를 들어서 엔티티를 JPA 구현체가 생성할 때 리플렉션을 사용해서 객체를 먼저 생성하고, 나중에 값을 필드에 직접 넣어주기도 합니다.
이런 경우 final이면 안되겠지요?
지연로딩 등을 위해 프록시 기술을 사용하기도 합니다.
이렇게 다양한 방식으로 JPA 구현체들이 사용할 수 있도록 JPA는 스펙상 final을 사용하지 못하도록 막아두었습니다.
감사합니다.
답변 1