这是什么意思:“私有”修饰符与JLS建议不符

2022-09-02 20:22:33

在将“final”添加到myItem声明之前,我首先收到此警告:

私有字段“myItem”可以成为最终字段;它仅在声明或构造函数中初始化。

private Item myItem;

添加最终后,这是我得到的警告:

“私有”修饰符与 JLS 建议不符。

final private Item myItem;

有谁知道我为什么得到这个?我做了一些研究,但似乎找不到任何可以解决这个问题的方法。


答案 1

首先,如果事情在一生中绝对没有改变,那么制造东西就是一个很好的做法。这有助于推理对象的可变性。final

对于第二个警告,您正在寻找JLS部分8.1.1,8.3.1和8.4.1。

public或者应该先来,哪个应该先来。privatestaticfinal


答案 2

通常的顺序是 for 在 之前 ,如下所示:privatefinal

private final Item myItem;

如果修饰符的顺序不同,代码的编译和行为仍然相同,但是习惯于JLS建议的标准顺序的人会认为你的代码看起来很奇怪。


推荐