[英]How do I get all public static methods of a class in Java?
clazz.getDeclaredMethods()
将返回所有方法,但是我只想要那些public static
方法,我该怎么做?
You need to check with the Modifier
class after calling getModifiers
on the Method
objects 在对
Method
对象调用getModifiers
之后,需要检查Modifier
类。
public static void main(String[] args) throws Exception { //Read user input into the array
Method method = Main.class.getDeclaredMethod("main", String[].class);
int modifiers = method.getModifiers();
System.out.println(modifiers);
System.out.println(Modifier.isStatic(modifiers));
System.out.println(Modifier.isPublic(modifiers));
System.out.println(Modifier.isAbstract(modifiers));
}
prints 版画
9
true
true
false
The int
value holds information in specific bit positions for static
, public
, etc. modifiers. int
值在static
, public
等修饰符的特定位位置保存信息。
Try using: 尝试使用:
Modifier.isStatic(method.getModifiers()).
Example: 例:
public static List<Method> getStaticMethods(Class<?> clazz)
{
List<Method> methods = new ArrayList<Method>();
for (Method method : clazz.getMethods())
{
if (Modifier.isStatic(method.getModifiers()))
{
methods.add(method);
}
}
return Collections.unmodifiableList(methods);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.