今日读到开源项目中一段源代码,发现对final类型的field在某方法中附值了,感觉不对劲,于是查阅了相关资料,总结如下:
1. final修饰的成员变量没有默认值
2. final初始化可以在三个地方
(1)声明的时候初始化
(2)构造函数里初始化
(3)要是没有static修饰的话可以在非静态块里初始化,要是有static修饰的话可以在静态块里初始化
3. 使用final成员前要确保已经初始化,如果没初始化,或者初始化多次,则无法通过编译。
1. final修饰的成员变量没有默认值
2. final初始化可以在三个地方
(1)声明的时候初始化
(2)构造函数里初始化
(3)要是没有static修饰的话可以在非静态块里初始化,要是有static修饰的话可以在静态块里初始化
3. 使用final成员前要确保已经初始化,如果没初始化,或者初始化多次,则无法通过编译。