我创建了一个Double的ArrayList,我调用了方法list.add(1),但是,我收到一个错误。如果我可以将int赋给double变量,如下所示:double num = 1;由于自动升级,为什么我不能通过自动升级将1添加到Double的ArrayList?
答案 0 :(得分:7)
您不是要将int
转换为double
;您正在尝试将int
转换为Double
,这是装箱和从int
到double
的隐式转换的组合。即使是在简单的任务中,这也行不通:
// 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);