我用过:
System.out.println(Person.class.getDeclaredMethods().length);
在这里获取此类的方法数:
class Person {
private String name;
Person(String newName) {
name = newName;
}
public String getName() {
return name;
}
public void setName(String val) {
name = val;
}
}
Run Code Online (Sandbox Code Playgroud)
我为这个类计算了三个方法,但getDeclaredMethods().length只计算了两个方法.我错过了什么?
Person(String newName) {
name = newName;
}
Run Code Online (Sandbox Code Playgroud)
这是类的构造函数,而不是方法.
要了解方法和构造函数之间的区别,请阅读以下文章:http://www.javaworld.com/article/2076204/core-java/understanding-constructors.html
该类声明(按从上到下的顺序):
一个领域:name.(您可以使用getDeclaredFields,但我不认为您正在寻找有关声明字段的信息).
一个构造函数:Person(String).构造函数不是方法,它们是构造函数.如果您想知道有多少个声明的构造函数,请使用getDeclaredConstructors.
两种方法:getName和setName.你已经知道如何获得它们了.
它拥有比更多的方法,因为它继承了方法Object(toString,hashCode,equals等),但这些都是它的那些声明.
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |