トップ 一覧 Farm 検索 ヘルプ RSS ログイン

Diary/2006-6-29の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!javaでリフレクション
!Javaでリフレクション

{{category Java}}
{{category プログラミング}}

するときには,例えば,
 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}}