clazz.getDeclaredMethods()
将返回所有方法,但我只想要那些public static
方法,我该怎么做?
问问题
120 次
3 回答
5
Modifier
调用对象后getModifiers
,您需要与班级核对Method
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
于 2013-09-08T14:58:24.800 回答
1
您应该遍历返回的方法并检查 getModifiers() 方法。如果它返回 STATIC 与否。
更多信息在javadoc
于 2013-09-08T14:58:13.923 回答
1
尝试使用:
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);
}
于 2013-09-08T15:01:18.517 回答