2
我的問題與this非常相似,只是在SonarLint V3(squid:S1948)中遇到了此問題。SonarLint V3:「Serializable」類中的字段對於List接口應該是transient或serializable
我的代碼是:
public class Page<T> implements Serializable {
Summary summary;
List<T> elements;
public Page() {
summary = new Summary();
}
public List<T> getItemsReceived() {
return elements;
}
public void setItemsReceived(List<T> list) {
this.elements = list;
}
public Summary getSummary() {
return summary;
}
public void setSummary(Summary summary) {
this.summary = summary;
}
}
摘要對象實現Serializable。
public class Summary implements Serializable {
int offset;
int limit;
long totalElements;
public int getOffset() {
return offset;
}
public void setOffset(int offset) {
this.offset = offset;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public long getTotalNumberOfElements() {
return totalElements;
}
public void setTotalNumberOfElements(long totalNumberOfElements) {
this.totalElements = totalNumberOfElements;
}
}
現在,如果我用ArrayList替換List,那麼SonarLint中的另一個警告就是我們應該使用接口而不是實現類。
我認爲這可能會在SonarQube中解決,但對於SonarLint我不知道。 這是一個錯誤還是我做錯了什麼?
SonarQube和SonarLint共享負責檢測Java代碼問題的分析器https://redirect.sonarsource.com/plugins/java.html,因此如果在兩個工具中使用相同版本的SonarJava,則應該會看到相同的問題。現在關於你的代碼,哪個文件和哪一行是問題引發的? –
Page類。 SonarLint報告列表不可序列化,因此應該是。如果我用ArrayList替換它,那麼它報告我應該使用接口。在這兩個方面我都得到了這個。我的問題:這是幾年前'SonarQube'中的一個bug,因爲我正在使用最新版本的'SonarLint',爲什麼這仍然在intellij中提供? –
這與您鏈接的問題不是同一個問題。看到我的答案。 –