자바/일반
final 키워드 사용처
OverTheHorizon3410
2023. 11. 4. 20:11
- 변수 사용시
private final x = 100;
- 한번 초기화되는 경우 값을 변경할 수 없다.
- 변경되지 않는 상수를 정의가능
- VO 나 엔티티의 경우 수정되지 않아야하는 경우가 대부분이기에 final 키워드를 변수에 많이 사용한다라고
- 생각할수있지만, VO 나 엔티티는 거의 final 키워드의 사용을 못한다.
- 엔티티의 경우 지연로딩이 존재하는데, 프록시 객체를 생성 -> 프록시 객체에서 리플렉션 API 수행
- 리플렉션 수행시 -> 기본 생성자와 setter 가 필요한 상황
- 하지만 final 은 기본적으로 setter 를 사용할 수 없음.
- VO 의 경우에는 로직에 따라 초기화 시점에 , 애초에 모든 객체나 데이터를 들고오지 못하는 경우가 있기에, 사용하기 까다롭다..
- 메서드에 사용되는 경우
public final void myMethod() {}
- 오버라이드 될 수 없는 메서드를 의미합니다.
- 혹여나 누군가 내 커스텀 메서드를 상속하는 경우 의도와 다르게 동작할 경우를 배제하기 위함입니다
- 클래스에 사용되는 경우
- 상속될 수 없는 클래스를 final 로 선언이 가능합니다.
final
은- 안정성과 불변성 떄문에 사용합니다.
Uploaded by
N2T