この記事では、以下のProductクラスが持つ、staticなTwice(),DoubleSomething()メソッドをリフレクションを使って実行する方法をまとめています。
Product.java
public class Product {
private static int fieldVal = 100;
private static int Twice(){
return fieldVal = fieldVal * 2;
}
private static int DoubleSomething(int x){
return x * 2;
}
}
staticメソッドを実行する方法
ProductTest.java
//インスタンスを取得。
Product obj = new Product();
//メソッドを取得。
Method method = Product.class.getDeclaredMethod("Twice");
//メソッドにアクセスできるようにする。
method.setAccessible(true);
//メソッド実行
int result = (int) method.invoke(null);
//結果を出力
System.out.println(result);
実行結果
200
解説
staticなメソッドを実行する場合は、11行目のinvokeメソッドではインスタンスをセットする代わりにnullをセットして実行します。
以上で記事の解説はお終い!
もっとJavaやSpringを勉強したい方にはUdemyがオススメ!同僚に差をつけよう!