在Java中,你可以使用Class类的getDeclaredMethods()方法来获取一个类的所有声明的方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。如果你想要获取一个类及其父类的所有方法,你可以使用getMethods()方法。
以下是一个简单的示例,展示了如何使用Class类的getDeclaredMethods()方法来获取一个类的所有声明的方法:
import java.lang.reflect.Method;
public class MyClass {
private void privateMethod() {
}
protected void protectedMethod() {
}
public void publicMethod() {
}
}
public class Main {
public static void main(String[] args) {
// 获取MyClass类的Class对象
Class<?> clazz = MyClass.class;
// 获取MyClass类的所有声明的方法
Method[] methods = clazz.getDeclaredMethods();
// 遍历并打印方法名
for (Method method : methods) {
System.out.println(method.getName());
}
}
}
输出结果:
privateMethod
protectedMethod
publicMethod
如果你想要获取一个类及其父类的所有方法,可以使用getMethods()方法,如下所示:
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) {
// 获取MyClass类的Class对象
Class<?> clazz = MyClass.class;
// 获取MyClass类的所有公共方法,包括继承的方法
Method[] methods = clazz.getMethods();
// 遍历并打印方法名
for (Method method : methods) {
System.out.println(method.getName());
}
}
}
输出结果:
publicMethod
wait
wait
wait
equals
toString
hashCode
getClass
notify
notifyAll
注意,getMethods()方法返回的方法数组中可能包含一些从父类继承的公共方法,例如Object类中的equals()、toString()等方法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。