SpringBoot
final
zkzk7290
2024. 11. 28. 02:20
반응형
private final BlackListService blackListService;
final :자바에서 변수를 한번 초기화할 수 있도록 제한하는 역할을 합니다.
private final BlackListService blackListService; VS
private BlackListService blackListService; 차이점
final이 있는 경우
=> 일반적으로 변수를 선언하면 초기화해야 하며 이후에는 값을 변경 못함
=> 객체가 한번 초기화되면 변경할 수 없으면 코드의 불변을 보정 + 안전성까지
=> 코드의 가독성이 증가
비 final인 경우
=> 객체의 참조가 다른 객체로 변경될 수 있으므로, 코드의 상태가 예기치 않게 변할 수 있기 때문에
버그를 유발할 가능성 증가
=> 변수를 초기화하지 않고 나중에 값을 변경할 수 있기 때문에 초기화는 생성자, 메서드 등 여러 곳에서 가능하므로 유연성이 있지만, 잘못된 상태로 남아있을 위험 있음
=> 가독성이 떨어질 수 있으며, 해당 변수가 언제 어디서 변경될지 알기 어려워질 수 있음
final은 사용자의 요구에 따라 초기화가 필요한 경우 사용 안 해도 됨 그래서 상황에 맞게 사용 service sk 의존성 주입에는 사용 추천
반응형