要显示该类的所有方法(其名称是在运行时通过用户输入以字符串形式输入的),我执行以下操作:
// String s is the class name entered
if (Class.forName(s).getDeclaredMethods().length > 0) {
for (int i = 0; i < Class.forName(s).getDeclaredMethods().length; i++) {
System.out.println(Class.forName(s).getDeclaredMethods()[i].toString());
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我只需要显示公共方法,我应该添加什么?
你可以这样试试:
if (Modifier.isPublic(method.getModifiers()))
{
//Yes the method is PUBLIC
}
Run Code Online (Sandbox Code Playgroud)
参考getModifier:
以整数形式返回此 Method 对象表示的方法的 Java 语言修饰符。Modifier 类应该用于解码修饰符。
我可能会这样写。
for (Method m : Class.forName(s).getDeclaredMethods()) {
boolean isPublic = (m.getModifiers() & Modifier.PUBLIC) != 0;
System.out.println(m + " isPublic: " + isPublic);
}
Run Code Online (Sandbox Code Playgroud)