getDeclaredMethods() 是 Java 反射 API 中的一个方法,用于获取一个类的所有声明的方法,包括公共、受保护、默认(包)访问和私有方法,但不包括继承的方法。这个方法返回一个 Method 对象数组,每个对象表示类中的一个方法。
public Method[] getDeclaredMethods() throws SecurityException
Method 对象数组,包含类中声明的所有方法,包括公共、受保护、默认(包)访问和私有方法,但不包括继承的方法。SecurityException:如果当前的安全管理器不允许访问该方法。假设我们有一个简单的类 Person:
public class Person {
private String name;
protected int age;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
protected void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
private void sayHello() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}
我们可以使用 getDeclaredMethods() 方法获取 Person 类中声明的所有方法:
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) {
try {
Class<?> personClass = Person.class;
Method[] methods = personClass.getDeclaredMethods();
for (Method method : methods) {
System.out.println(method.getName());
}
} catch (SecurityException e) {
e.printStackTrace();
}
}
}
输出结果:
setName
getName
setAge
getAge
sayHello
可以看到,getDeclaredMethods() 方法返回了 Person 类中声明的所有方法,包括私有方法 sayHello()。
getDeclaredMethods() 方法不会返回继承的方法。如果需要获取继承的方法,可以使用 getMethods() 方法。getDeclaredMethods() 方法将返回一个长度为 0 的数组。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。