【发布时间】:2016-12-12 16:44:50
【问题描述】:
当我使用 SonarQube 检查我的 Java 代码时,弹出了一些警告:“Serializable”类中的字段应该是瞬态的或可序列化的 squid:S1948。
我的代码:
public class ServiceResult implements Serializable {
public static final Integer INTERNAL_ERROR = 500;
public static final Integer SERVICE_EXCEPTION = 501;
public static final Integer PARAM_ERROR = 999;
public static final int AUTHORITY_ERROR = 401;
public static final Integer SUCCESS = 200;
public static final Integer INPUT_ERROR = 402;
private Integer code = SUCCESS;
private Object msg;
public ServiceResult() {
}
public ServiceResult(Integer code, Object msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public Object getMsg() {
return msg;
}
public void setMsg(Object msg) {
this.msg = msg;
}
public static ServiceResult fail(String msg) {
ServiceResult serviceResult = new ServiceResult();
serviceResult.setCode(INTERNAL_ERROR);
serviceResult.setMsg(msg);
return serviceResult;
}
public static ServiceResult success(Object msg) {
ServiceResult serviceResult = new ServiceResult();
serviceResult.setCode(SUCCESS);
serviceResult.setMsg(msg);
return serviceResult;
}
}
我只是不确定我还能在这里做什么,Class 是可序列化的,并且所有成员字段也都是可序列化的。
请让我知道之前是否已解决此问题。
【问题讨论】:
-
Object没有实现Serializable。 -
如何使对象实现可序列化
-
你不能。一种方法是简单地将
Object替换为Serializable,但第一个问题应该是您期待什么样的消息。这真的是一个任意对象吗? -
谢谢~msg 应该是字符串而不是任意对象。
标签: java sonarqube serializable