トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

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プラグインは存在しません。