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 의존성 주입에는 사용 추천 

 

 

반응형