なるようにしかならん

そういうことです

可変長引数がnullの場合と無かった場合

以下のコードにて。

public class MultiLengthArgumentsTest {

	public static void main(String[] args) {
		System.out.print("その1 > ");
		printArgs("a");
		System.out.print("その2 > ");
		printArgs("a", "b", "c");
		System.out.print("その3 > ");
		printArgs(null);
		System.out.print("その4 > ");
		printArgs();

	}
	
	private static void printArgs(String... args) {
		if(args instanceof String[]) {
			System.out.println("配列っぽいね");
			StringBuilder sb = new StringBuilder();
			if(args.length == 0) {
				System.out.println("[ ]");
			} else {
				for(String s : args) {
					sb.append(s).append(",");
				}
				System.out.println("["+sb.substring(0, sb.length()-1)+"]");
				System.out.println("length : " + args.length);
			}
		} else {
			System.out.println("実は -> " + args);
		}
	}
}

【まとめ】
与えられた可変長引数がnullの時は、受け取った側もnull。
与えられた可変長引数が無かった時は、受け取った側は要素0個の配列。

単純に配列から可変長引数にargsを変えると、予期せぬエラーが起きそうです。