假设我有两个类如下Java:严格类型检查失败?
class A
{
private Double value;
...
//getters and setters
}
class B
{
private Double value;
...
//getters and setters
}
更新
public static void main(String[] args)
{
A a = new A();
B b = new B();
a.setValue(b.getValue() != null ? b.getValue() : 0); //works!
a.setValue(0); //doesn't work
}
和声明
a.setValue(b.getValue != null ? b.getValue : 0);
工作正常,但a.setValue(0)
不起作用我需要将该值设置为0D
才能使其正常工作。
为什么我不用写D
随着在第一种情况下0
?
请展示一个简短但完整的程序来展示问题。我们不能轻易说出这里发生了什么。 – 2014-12-04 07:07:07
那是因为0被编译器视为整数类型,整数不能直接赋值为double,所以你需要指定'D'来告诉编译器它是一个double值。 – 2014-12-04 07:09:09
@JonSkeet我已经更新了一些代码,希望对你有所帮助 – eatSleepCode 2014-12-04 07:10:02