Javaプログラミングにおいて、少しばかり複雑なことをしようとすると、必ず頭をもたげてくるのがリフレクション。リフレクションを利用し、とあるクラスのメソッド一覧を取得するような処理を書くことは多いと思いますが、その際__取得したメソッドがstaticか否かを判定したいという場合にはModifier#isStatic
を利用します__。以下がそのサンプルとなります。
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class StaticTest {
public static void main(String[] args) {
Method[] methods = Sample.class.getDeclaredMethods();
for (Method method : methods) {
if (Modifier.isStatic(method.getModifiers())) {
System.out.println(method.getName());
// => privateStaticMethod publicStaticMethod
}
}
}
public static final class Sample {
public static void publicStaticMethod() {};
private static void privateStaticMethod() {};
public void publicInstanceMethod(){};
private void privateInstanceMethod(){};
}
}