[英]How do I get all public static methods of a class in Java?
clazz.getDeclaredMethods()
將返回所有方法,但是我只想要那些public static
方法,我該怎么做?
在對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));
}
版畫
9
true
true
false
int
值在static
, public
等修飾符的特定位位置保存信息。
您應該遍歷返回的方法並檢查getModifiers()方法。 是否返回STATIC。
javadoc中的更多信息
嘗試使用:
Modifier.isStatic(method.getModifiers()).
例:
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.