Java中的getMethods()方法用于获取一个类的所有public方法,包括继承自父类以及自身所定义的public方法。该方法属于反射机制中的方法之一,其返回的数据类型为一个Method数组。
下面是该方法的详细使用攻略:
方法签名
public Method[] getMethods()
简要解释
该方法用于获取一个类的所有public方法,包括继承自父类以及自身所定义的public方法。
参数
无参数。
返回值
一个Method类型的数组,包含所有public方法的Method对象。
示例一
假设我们有一个Person类,代码如下:
public class Person {
public void sayHello() {
System.out.println("Hello");
}
}
我们可以通过如下代码获取该类的所有public方法:
Class<Person> personClass = Person.class;
Method[] methods = personClass.getMethods();
for (Method method : methods) {
System.out.println(method.getName());
}
输出结果如下:
equals
wait
wait
wait
hashCode
getClass
notify
notifyAll
toString
sayHello
可以看到,该类的所有public方法都被获取到了,包括Object类中的方法和自身定义的方法sayHello。
示例二
假设我们有一个Animal类,代码如下:
public class Animal {
public void eat() {
System.out.println("Animal eats food.");
}
}
我们还有一个Cat类,继承自Animal类,代码如下:
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("Cat eats fish.");
}
public void catchMouse() {
System.out.println("Cat catches a mouse.");
}
}
我们可以通过如下代码获取Cat类的所有public方法:
Class<Cat> catClass = Cat.class;
Method[] methods = catClass.getMethods();
for (Method method : methods) {
System.out.println(method.getName());
}
输出结果如下:
equals
wait
wait
wait
hashCode
getClass
notify
notifyAll
toString
eat
catchMouse
可以看到,该类所有的public方法都被获取到了,包括继承自父类的方法和自身定义的方法。注意,Cat类对eat方法进行了重写,但仍然管理获取到了父类中的eat方法和自身重写后的eat方法。