簡體   English   中英

為什么在列表中添加int時沒有促銷<Double>

[英]Why no promotion when adding ints to List<Double>

在Java中,我創建了一個Double的ArrayList,並調用了方法list.add(1),但是,出現錯誤。 如果我可以將int分配給double變量,例如:double num = 1; 由於自動升級,為什么我不能通過自動升級為Double的ArrayList添加1?

您不是要將int轉換為double 您正在嘗試將int轉換為Double ,這是裝箱intdouble的隱式轉換的組合。 即使在簡單的任務中,這也不起作用:

// Error: incompatible types: int cannot be converted to Double
Double num = 1;

甚至對於Long也不起作用-您需要指定一個long文字:

Long num1 = 1; // Invalid
Long num2 = 1L; // Valid

在您的情況下,您只需要使用double精度字面量,例如

list.add(1.0);
list.add(1D); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM