ArrayList의 add 코드를 살펴보던 도중 final변수의 선언과 초기화가 분리되어있는것을 발견하였다
final변수는 언제 초기화와 선언이 분리될까?
class Judy {
Nick nick;
final String message = nick.say(); // nick이 null값으로 error가 발생한다
Judy(Nick nick) {
this.nick = nick;
}
}
class Judy {
final String message;
Judy(String msg) {
this.message = msg; //선언-초기화 분리는 가능
}
}
public void func(){
final int s1=2;
final int s2;
s2 = 3;//변경불가
}