我有这段代码。
class NumberMachine {
public static void main(String [] args) {
Integer wi1 = new Integer("420");
int i = 101;
Integer wi2 = i*420/101;
if(wi1 == wi2)
System.out.print(" ==");
if(wi1.equals(wi2))
System.out.print(" equal");
float f = 1.23f;
new NumberMachine().printIt(f);
}
void printIt(Float f) {
System.out.println(" Float");
}
void printIt(double d) {
System.out.println(" double");
}
}
为什么结果是“等于双精度”,而不是“等于浮点数”?
扩宽转换(widening)
比装箱(boxing)
更早存在,所以如果不按照这个顺序进行,旧代码的行为可能会发生改变。 - Keppil这保证了Java SE 5.0之前在Java编程语言中有效的任何调用都不会由于引入可变性参数方法、隐式装箱和/或拆箱而被视为模棱两可。
- assylias