java反射中如何判断是否是静态方法及静态方法调用

判断是否是静态方法的代码如下:

1
2
3
4
5

Method method = .getMethod(相关参数);
int modifiers = getModifiers();
Modifier.isStatic(modifiers )

调用静态方法的代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16

public static Object invokeConvertMethod(String enumClazzName, Object methodParam) {
    if (!methodCache.containsKey(enumClazzName)) {
        throw new RuntimeException("Wrong");
    }

    try {
        Method method = methodCache.get(enumClazzName);
        // todo 临时,因为还没有决定枚举要不要分String和Integer
        return method.invoke(null, String.valueOf(methodParam));
    } catch (IllegalAccessException | InvocationTargetException e) {
        e.printStackTrace();
        return null;
    }
}

参考资料

  1. Java判断是否是static方法
  2. Java 反射调用静态方法