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

Thu*_*huy 0 java integer-promotion

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

Jon*_*eet 7

你不是想转换intdouble; 你想转换intDouble,这是一套组合拳,并从隐式转换intdouble.即使是在简单的任务中,这也行不通:

// Error: incompatible types: int cannot be converted to Double
Double num = 1;
Run Code Online (Sandbox Code Playgroud)

它甚至不起作用Long- 你需要指定一个long文字:

Long num1 = 1; // Invalid
Long num2 = 1L; // Valid
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您只需要使用double文字,例如

list.add(1.0);
list.add(1D); 
Run Code Online (Sandbox Code Playgroud)