java方法可以知道调用它的对象的类型(即调用它的子类型)
这与Java语言有关
假设我们有一个超类a和子类X和Y,我在a中有一个方法需要知道X和Y的类型(它是一个外部库)
我有一个名为someMethod()
的方法。我的问题是:在someMethod()
实现中,有没有一种方法可以确定它是由X还是Y调用的
如果不清楚,请告诉我
编辑^2:
A班的具体情况是这样的
public void delete() {
Datastore ds = Dao.instance().getDatabase();
ds.delete(this.getClass(),this.id);
}
我希望能够做X.delete()和Y.delete()
# 1 楼答案
使用^{} ,您可以很容易地确定在X或Y上调用的是:
当然,这个公共方法可以被任何类(不仅仅是X或Y)调用。如果需要获取该信息,则需要获取堆栈跟踪-由于内联等原因,该跟踪可能并不总是可靠的。正确的操作过程将取决于为什么需要该信息
# 2 楼答案
是的:只需拨打^{} 。例如:
这将根据调用对象的运行时类打印出
X
或Y