Categories: Java

【Java入門】リフレクションでstaticメソッドを実行する方法

この記事では、以下の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がオススメ!同僚に差をつけよう!

issiki_wp