在将'final'添加到myItem声明之前,我首先收到此警告:
私人领域'myItem'可以成为最终的;它只在初始化 声明或构造函数。
private Item myItem;
添加决赛后,这是我得到的警告:
'private'修饰符与JLS建议无关。
final private Item myItem;
有谁知道我为什么会这样? 我做了一些研究,但似乎无法找到解决这个问题的任何东西。
答案 0 :(得分:11)
首先,如果他们在一生中肯定不会改变,那么制作final
就是一个好习惯。这有助于推断对象的可变性。
对于第二个警告,您要查找JLS部分8.1.1,8.3.1和8.4.1。
public
或private
应该出现在static
之前,final
应该出现在int i;
Object a + to_string(i);
之前。
答案 1 :(得分:7)
通常的订单是private
来final
之前,如下所示:
private final Item myItem;
如果修饰符的顺序不同,代码仍会编译并表现相同,但习惯于JLS建议的标准顺序的人会认为您的代码看起来很奇怪。
答案 2 :(得分:0)
此警告的原因是不同类型修饰符的顺序,请检查the answer of this question。
对于这种情况,只需将访问修饰符放在最终版本之前。