如果
doSomething重载,则需要显式将null强制转换为,
MyClass以便选择正确的重载:
public void doSomething(MyClass c) { // ...}public void doSomething(MyOtherClass c) { // ...}调用varargs函数时,需要进行强制转换的情况是:
class Example { static void test(String pre, String... s) { System.out.println("pre: " + pre); if(s == null) { System.out.println("array is null"); return; } for(String str: s) { if(str != null) { System.out.println(str); } else { System.out.println("element is null"); } } System.out.println("---"); } public static void main(String... args) { test("numbers", "one", "two"); test("nothing"); test("null-array", (String[])null); test("one-null-element", (String)null); test("warning", null); }}最后一行将产生以下警告:
Example.java:26:警告:varargs方法的无变量调用,最后一个参数的参数类型不精确;
强制转换java.lang.String为varargs调用
强制转换java.lang.String[]为非varargs调用并禁止显示此警告



