簡體   English   中英

實體 class 定義非瞬態不可序列化實例字段價格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM