funcA()
クラスの呼び出しにリフレクションを使用しようとしていましたClsA
。ただし、以下に示すように、クラスのコメントにEclipse Juno
警告が表示されています。TestA
warning (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 にキャストすることもできます。