è¤æ°ã®ãªãã¸ã§ã¯ãã®å ±éã®è¦ªã¯ã©ã¹ãæ±ãã
推論の元になる引数が複数ある場合、共通の親クラスが使われるã®ã§ããã±ãããã使ã£ã¦è¤æ°ã®ãªãã¸ã§ã¯ãã®å ±éã®è¦ªã¯ã©ã¹ãå¾ããã¨ãã§ããã®ã§ã¯!ã¨ã²ãããã¦ãã¾ã£ãã
// å¼æ°ã®å ±éã®è¦ªã¯ã©ã¹ãè¿ãã static <X> Class<?> test( X... args ) { return args.getClass().getComponentType(); } .... public static void main( String[] args ) { System.out.println( test( "a" ) ); // String System.out.println( test( "", new Object() ) ); // Object System.out.println( test( 1, 1D ) ); // Number System.out.println( test( new IOException(), new RuntimeException() ) ); // Exception }
å®è¡çµæã§ãã
class java.lang.String class java.lang.Object class java.lang.Number class java.lang.Exception
ãã¼ãã¡ããã¨ã¨ãã¦ããæè¿ã«ãã£ãJDK1.5.0_09ã¨ãJDK1.6.0_07ã§ç¢ºèªãããã©ã©ã¡ããæåã¯åããã¾ãEclipseでコンパイル&実行ããå ´åãåæ§ã§ããããã¯ããã¯ã¨ãã¦ä½¿ãããã§ã¯ãããã©ãããã !ã¨ãã使ãéã¯æãã¤ãããªã¼ããã¼ã