【发布时间】:2013-05-14 23:59:20
【问题描述】:
有没有办法扁平化继承的类以发现哪些函数属于哪个类?
如果你有这样的课程:
public class Person
{
public String name;
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
还有一个继承类
public class Worker extends Person
{
public String job;
public void setJob(String job){
this.job = job;
}
public String getJob(){
return this.job;
}
}
实例化Worker时,有没有办法查出Set/GetName属于Person类?
我看到了使用界面来查找此信息的建议,但我不确定如何最好地使用界面来显示此处的函数关系类型。在继承的类中引用特定类有什么秘籍吗?
编辑:
回答我为什么要这样做:我基本上希望能够遍历对象中的方法并忽略来自某个类的方法,在这种情况下我想忽略 Person 类。
我的现实世界的例子并不像这样简单,但我想不出更好的方法来确定哪些方法属于哪个类而不“扁平化”它们。
【问题讨论】:
-
你能解释一下为什么需要它吗?
-
@Jarede:你可以检查 java 反射。您可以检查声明的方法,例如:docs.oracle.com/javase/7/docs/api/java/lang/…, java.lang.Class...)
-
Jayan 的评论是对的。如果您使用的是 Eclipse,则对象检查器(在您编写
.点后显示可用于对象的方法)以粗体显示在更具体的类中声明的方法(因此,对于Worker变量,setJob会加粗,setName不会)
标签: java oop object inheritance