为什么将整数添加到列表<Double>时没有促销



在Java中,我创建了一个Double的ArrayList,并调用了list.add(1)方法,但是,我得到了一个错误。如果我可以给一个双变量赋值,比如:double num=1;由于自动促销,那么为什么我不能通过自动促销将1添加到Double的ArrayList?

您没有尝试将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); 

最新更新