SonarQube报道了#'制作" ID"瞬态或可序列化的#39;对于这行代码:
private final List<String> ids;
所以我把它改成了:
private final ArrayList<String> ids;
并确保我的公共接口(在这种情况下是构造函数)仍然只使用一个接口:
public MyClass(List<String> ids) {
this.ids = (ids == null) ? new ArrayList<>() : new ArrayList<>(ids);
}
这摆脱了第一个SonarQube警告,但现在它给出了:
&#34; ID&#34;的类型对象应该是一个接口,例如&#34; List&#34;而不是实现&#34; ArrayList&#34;。
我不想关闭使用接口而不是具体类的所有规则,但仅限于此类情况。