我收到与我的一个字段声明相关的警告,并想知道处理该问题的最佳做法是什么
public class ModeloCatalogo extends Modelo {
private static ArrayList<String> excluidas = new ArrayList<>();
...bunch of irrelevant fields...
private static void functionThatLoadsValuesIntoArrayList(){
excluidas.add("String 1");
...
excluidas.add("String n");
}
...bunch of irrelevant methods...
}
Run Code Online (Sandbox Code Playgroud)
在字段声明中,netbeans 警告“字段可以是最终的”,可以这样解决:
private static ArrayList<String> EXCLUIDAS = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
请注意,如果不是大写,netbeans 将根据命名约定生成不同的警告。(为了清楚起见在编辑中添加)
至于命名约定,它应该是大写的,这让我感到畏缩,似乎不对。
通过在将值加载到数组的函数内初始化数组来消除警告。
private static ArrayList<String> excluidas;
private static void functionThatLoadsValuesIntoArrayList(){
excluidas = new ArrayList<>();
excluidas.add("String 1");
...
Run Code Online (Sandbox Code Playgroud)
但恕我直言,它降低了代码的可读性。
所以这让我思考,摆脱警告的正确方法是什么?
NetBeans 可能建议创建该字段,final因为您仅在初始化期间为其分配值,并且之后不会重新分配它。
Java 语言规范中指定了常量的命名约定,其中规定:
[...] 类类型的最终变量通常可以是一个或多个单词、首字母缩略词或缩写的序列,全部大写,组件之间用下划线“_”字符分隔
然而,有人认为可变static final字段不应被视为常量,因此应使用正常的字段命名。
如果类型可变,较新版本的 NetBeans 不应显示所描述的重命名字段的警告,请参阅此注释。确保您使用的版本是最新的并且您没有禁用此检查。
但你确定这个字段应该放在第一位static吗?如果该方法functionThatLoadsValuesIntoArrayList可以在您当前的设计中为其分配一个值,那么该字段可能不应该是静态的,尽管通过这个小代码片段很难判断这一点。
| 归档时间: |
|
| 查看次数: |
10080 次 |
| 最近记录: |