Java基础,请问这是为什么

开不了口1990 开不了口1990 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
前些日子按要求修改实体类的一个字段类型,把Double改成BigDecimal。没想到却出问题了,我把问题简化一下:
public class TestMain {
public static void main(String[] args) {
Test t1 = new Test();
t1.setNum(10d);

new Test2(t1);
}
}

class Test2{
public Test2(Test t1) {
StringBuffer str = new StringBuffer();
str.append("***").append(t1.getNum().doubleValue());
System.out.println(str);
}
}

class Test {
private Double num;

public Double getNum() {
return num;
}

public void setNum(Double num) {
this.num = num;
}
}

将Test类中的Double类型改成BigDecimal类型,TestMain中的设置值也改成new BigDecimal(10d)。
改了之后运行也是没问题的,于是发补丁,由于Test2代码没改过,所以只打包Test.class和TestMain.class。
但是这样运行就出问题了,提示是t1.getNum()不是Double类型什么的,所以我想问为什么这里的类型不能自动判断呢?
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
开不了口1990
Java 51,407 成员 86,126 内容