假設我有兩個類如下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