Edw*_*ard 2 java eclipse warnings arraylist checkstyle
我写了下面的课.
package com.stackoverflow.examples;
import java.util.ArrayList;
/** RandomX. */
public final class Names {
/** List of names. */
private ArrayList<String> names = new ArrayList<String>();
/** Constructor. */
public Names() {
this.names.add("Test");
}
}
Run Code Online (Sandbox Code Playgroud)
在namesCheckstyle 声明的行中给出警告:
不允许声明变量,返回值或"ArrayList"类型的参数.
我该如何解决这个问题,这个警告背后的理由是什么?
......这个警告背后的理由是什么?
这是为了鼓励编码到界面而不是具体的实现.通过声明names为List<String>,您将仅限于使用List方法而不使用ArrayList提供的任何特定内容List.
在一般的,编码到接口,是很好的做法.像大多数规则一样,也有例外.
我该如何解决这个问题......
声明names为List<String>,而不是ArrayList<String>:
/** List of names. */
private List<String> names = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
它仍然是一个ArrayList<String>,它只是被宣布为一个List<String>.
如果你有充分的理由names必须声明为aArrayList<String>,你可以通过使用抑制注释(或抑制过滤器)告诉CheckStyle你在那里做出了有意的决定.注释可能是:
/** List of names. */
@SuppressWarnings("InterfaceIsType")
private ArrayList<String> names = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
...但仔细检查那个名字,我不知道CheckStyle.我从这里得到了名字.
或者当然,如果您不喜欢该警告,请将其全局关闭.
| 归档时间: |
|
| 查看次数: |
3932 次 |
| 最近记录: |