这是什么意思:'私有'修饰符与JLS建议无序

8 java warnings field eclipse-plugin

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

私人领域'myItem'可以成为最终的; 它只在声明或构造函数中初始化.

private Item myItem;
Run Code Online (Sandbox Code Playgroud)

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

"私有"修饰符与JLS建议无关.

final private Item myItem;
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么我得到这个?我做了一些研究,但似乎无法找到解决这个问题的任何东西.

sis*_*hus 12

首先,final如果他们在一生中肯定不会改变的话,那就做好事.这有助于推断对象的可变性.

对于第二个警告,您正在寻找JLS第8.1.1,8.3.1和8.4.1节.

public或者private应该来之前static,应该来之前final.


dna*_*ult 7

通常的顺序是private来之前final,像这样:

private final Item myItem;
Run Code Online (Sandbox Code Playgroud)

如果修饰符的顺序不同,代码仍将编译并表现相同,但习惯于JLS建议的标准顺序的人会认为您的代码看起来很奇怪.