1

funcA()クラスの呼び出しにリフレクションを使用しようとしていましたClsA。ただし、以下に示すように、クラスのコメントにEclipse Juno警告が表示されています。TestAwarning (A)

は次のClsAようになります。

public class ClsA {
   String varA;

   ...
   ...

   private String funcA() {
      return varA;
   }
}

これは、リフレクション呼び出しを使用するコードですfuncA():

public class TestA {

   public static void main(String[] args) {
      ClsA clsA = new ClsA();

      Class noparam[] = {};
      Method funcA;
      String retStr;

      funcA = ClsA.class.getDeclaredMethod("funcA", noparam);
      funcA.setAccessible(true);
      retStr = (String) funcA.invoke(clsA, null); // warning (A)
   }
}

そして、これは私が得る警告です。基本的に、警告が伝えようとしているメッセージが何であるかを本当に理解していませんか? どうすれば明示的にキャストできnullますか?

Method 型から varargs メソッド invoke(Object, Object...) を呼び出すには、null 型の引数を明示的に Object[] にキャストする必要があります。あるいは、varargs 呼び出しのために Object にキャストすることもできます。

4

2 に答える 2