トップ  検索

Diary/2006-6-29

Javaでリフレクション

Java
プログラミング
するときには,例えば,
 public class Test{
    public String test(){
        return "fefe";
    }
 }
を呼ぶ場合に,
 Class c = Class.forName("Test", null);
 Method m = c.getMethod("test", null);
 Object o = m.invoke(c.newInstance());
 System.out.println(o);
とかすればいいのだけど,
J2SE 1.5.0では,forNameやgetMethodの引数parameterTypeに対し
 最終パラメータの不正確な引数型を持った可変引数メソッドの非可変引数呼び出し
という警告がでる.APIドキュメントには,
 「parameterTypes が null の場合は、空の配列のように扱われます。」
と書いてあるので,問題はないのだけど,やっぱり警告がでるのは気になる.
警告だしたくなければ,
 Class c = Class.forName("Test", new Class[] {});
 Method m = c.getMethod("test", new Object[] {});
って書けばいいけど,やっぱり,ちょっと面倒.
かといって,1.4でコンパイルすることも考えると,引数なしというわけにもいかないし.
{{comment}}

Copyright (c) 2001-2008 Takefumi MIYOSHI, All rights reserved