可変長引数が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を変えると、予期せぬエラーが起きそうです。