【发布时间】:2012-01-04 17:31:55
【问题描述】:
基于下面的sn-p:
// as primitive
MyClass.primitiveMethod(double val); // method signature
MyClass.primitiveMethod(12); // ok
// as object
MyClass.objectMethod(Double val); // method signature
MyClass.objectMethod(12); // error
MyClass.objectMethod(12d); // ok
MyClass.objectMethod((double)12); //ok
Q1:虽然12d 和(double)12 似乎都可以工作,但指定后缀和显式转换之间有什么区别吗? (行为/表现)
Q2:为什么必须将MyClass.objectMethod(12) 视为错误?虽然 12 应该被解析为一个 Integer 对象,但 Java 不能足够聪明地知道 12 也是一个值 Double 值并接受它吗?
【问题讨论】:
标签: java