突然觉得自己好蠢,java基础忘光了
上代码
public class ResultObj{
public ResultObj success = new ResultObj(200,"ok");
public ResultObj erroe = new ResultObj(-1,"no");
private Integer code;
private String msg;
public ResultObj(Integer code,String msg){
this.code = code;
this.msg = msg;
}
}
然后在另一个类中调用success属性时,出现了堆栈溢出,也许你一眼就看出了问题所在,而我却debug了半天。说多了都是泪,太蠢了
success时ResultObj类的成员变量,创建ResultObj的对象时会初始化成员变量,然而success的值又是ResultObj的对象,所以就陷于----new ResultObj(200,“ok”);----初始化success----new ResultObj(200,“ok”);-----初始化success…无法自拔
如果需要写这样的代码,一定要记得加static修饰!