java类初始化时的一个不能理解的问题?

cheng_long111 2018-01-31 11:03:17
@Data
public class RespEntity {
private int code;
private String msg;
private Object data;

public RespEntity(RespCode respCode){
this.code = respCode.getCode();
this.msg = respCode.getMsg();
}

public RespEntity(RespCode respCode,Object data){
//this()指调用本类中的构造方法,只能存在于构造方法内
this(respCode);
this.data = data;
}

@java.beans.ConstructorProperties({"code", "msg", "data"})
public RespEntity(int code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}

public RespEntity() {
}

public void setRespCode(RespCode respCode){
this.code = respCode.getCode();
this.msg = respCode.getMsg();
}

protected boolean canEqual(Object other) {
return other instanceof RespEntity;
}

}
这是我的实体类的定义=============================================================
分明是有无参的构造函数,但new这个实体类对象时,出现这种情况:

为什么调用无参的构造器时,code和msg不是默认值0,null呢?
...全文
260 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng_long111 2018-02-01
  • 打赏
  • 举报
回复
多谢大神!!复现不了了,感觉是idea工具的问题,我重新加载一下项目就不会有这个问题了。
cheng_long111 2018-01-31
  • 打赏
  • 举报
回复
再补充:途中code和msg的值是我定义的一个枚举RespCode里的常量。。。。。。。。。。。。。 public enum RespCode { SUCCESS(0, "请求成功"), WARN(-1, "网络异常,请稍后重试"); private int code; private String msg; RespCode(int code, String msg) { this.code = code; this.msg = msg; } public int getCode() { return code; } public String getMsg() { return msg; } public void setCode(int code) { this.code = code; } public void setMsg(String msg) { this.msg = msg; } }
cheng_long111 2018-01-31
  • 打赏
  • 举报
回复
补充:我把类里面的setRespCode()方法改为别的名字就是正常了,用无参构造器new对象时,code和msg为0和null。。 请各位大神指导!!!!!!!!!!!!!1
ChongQingJin28 2018-01-31
  • 打赏
  • 举报
回复

enum RespCode {
    SUCCESS(0, "请求成功"),
    WARN(-1, "网络异常,请稍后重试");

    private int code;
    private String msg;

    RespCode(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
} 


public class CC {
    private int code;
    private String msg;
    private Object data;

    public CC(RespCode respCode){
        this.code = respCode.getCode();
        this.msg = respCode.getMsg();
    }

    public CC(RespCode respCode,Object data){
        //this()指调用本类中的构造方法,只能存在于构造方法内
        this(respCode);
        this.data = data;
    }

	public String toString(){
		return ""+code+msg+data;
	}
	
    @java.beans.ConstructorProperties({"code", "msg", "data"})
    public CC(int code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    public CC() {
    }

    public void setRespCode(RespCode respCode){
         this.code = respCode.getCode();
         this.msg = respCode.getMsg();
    }

    protected boolean canEqual(Object other) {
        return other instanceof CC;
    }

	public static void main(String[] args){
		CC c = new CC();
		System.out.println(c);
	}
}


javac CC.java

java -cp . CC
0nullnull
Data 的代码呢?

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧