[英]Entity class defines non-transient non-serializable instance field price
下面的一小段代碼顯示了 SONAR 錯誤,例如: Class com.sample.Submit 定義了非瞬態不可序列化實例字段 price 。 我們怎樣才能擺脫這個問題。
@JsonIgnoreProperties(ignoreUnknown = true)
public class Submit implements Serializable {
/**
* serialVersionUID of type long.
*/
private static final long serialVersionUID = 0L;
@JsonProperty("billCode")
private String billCode;
@JsonProperty("displayName")
private String displayName;
@JsonProperty("visible")
private Boolean visible;
@JsonProperty("price")
private Price price;
public Boolean getVisible() {
return visible;
}
public void setVisible(Boolean visible) {
this.visible = visible;
}
public String getBillCode() {
return billCode;
}
public void setBillCode(String billCode) {
this.billCode = billCode;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public Price getPrice() {
return price;
}
public void setPrice(Price price) {
this.price = price;
}
}
聲明您的 class Price
可序列化如下:
public class Price implements Serializable {
...
}
如果您確實需要 class 可序列化,那么它的每個實例成員(如 Price)也需要可序列化。
考慮一下你是否真的需要這個 Submit class 來進行序列化。 如果您沒有做任何需要存儲或通過網絡復制它的事情(例如將其放入 HTTP session,或將其保存在文件系統上,或將其放入隊列中),您可能不需要將 ZA2F2ED2ED4F8EBC2CBBDZ4 設置為可序列化的 ZA2F2ED4F8EBC2CBBDZ4總之,最好的辦法是從提交 class 中刪除implements Serializable
。
(請注意,使 class 可序列化與使用它生成 JSON 無關。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.