从父类获取子类名

2022-09-01 00:45:16

我的所有活动 () 都有一个基类,它本身派生自 。在 onCreate 中,我想基于当前正在执行的子类执行一些条件逻辑。如果 和 都扩展了 ,我如何在父类 () 中确定两者中哪一个是当前正在执行的?ActivityBaseandroid.app.ActivitySomeCustomActivityAnotherCustomActivityActivityBaseActivityBase


答案 1

在某些情况下,父类中的这一行就可以解决此问题。它返回“子”类(而不是父类)的名称:

this.getClass().getName() //String like "com.mycompany.myclassname"
this.getClass().getSimpleName() //String like "myclassname"

有关进一步讨论,请参阅此处:http://www.coderanch.com/t/324715/java/java/Getting-child-class-name-parent


答案 2

使用运算符的实例

假设你有一个基类和两个名为 、 和 的子类,如果你想检查一个变量是否是 的实例,或者你会说:BaseSubOneSubTworefSubOneSubTwo

if(ref instanceof SubOne){
}
else if(ref instanceof SubTwo){
}

请注意:将始终返回。(ref instanceof Base)true


推荐