为List <double> </double>添加int时为什么没有促销

时间:2014-10-23 20:19:36

标签: java integer-promotion

Java中的

我创建了一个Double的ArrayList,我调用了方法list.add(1),但是,我收到一个错误。如果我可以将int赋给double变量,如下所示:double num = 1;由于自动升级,为什么我不能通过自动升级将1添加到Double的ArrayList?

1 个答案:

答案 0 :(得分:7)

您不是要将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);