我使用 java 7,并创建了一个 varargs 方法
public class JavaApplicationTest {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
addBundleMessage("b", Integer.SIZE, "key", (Object) null);
}
public static void addBundleMessage(String bundleName, Integer severity, String key, Object... params) {
if (params == null)
System.out.println("params Is null");
else
System.out.println("Params not null");
}
}
如果我不投射对象,IDE 的 Netbeans 或 Eclipse 会抱怨,但它会编译:
最后一个参数的参数类型不准确的可变参数方法的非可变参数调用
无强制转换时:显示参数为空
当我将 null 转换为(Object)时,它显示Params not null
当我将 null 转换为(Object[])时,它显示params Is null
这是正常行为吗?