从父类获取子类名
2022-09-01 00:45:16
我的所有活动 () 都有一个基类,它本身派生自 。在 onCreate 中,我想基于当前正在执行的子类执行一些条件逻辑。如果 和 都扩展了 ,我如何在父类 () 中确定两者中哪一个是当前正在执行的?ActivityBase
android.app.Activity
SomeCustomActivity
AnotherCustomActivity
ActivityBase
ActivityBase
我的所有活动 () 都有一个基类,它本身派生自 。在 onCreate 中,我想基于当前正在执行的子类执行一些条件逻辑。如果 和 都扩展了 ,我如何在父类 () 中确定两者中哪一个是当前正在执行的?ActivityBase
android.app.Activity
SomeCustomActivity
AnotherCustomActivity
ActivityBase
ActivityBase
在某些情况下,父类中的这一行就可以解决此问题。它返回“子”类(而不是父类)的名称:
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
使用运算符的实例。
假设你有一个基类和两个名为 、 和 的子类,如果你想检查一个变量是否是 的实例,或者你会说:Base
SubOne
SubTwo
ref
SubOne
SubTwo
if(ref instanceof SubOne){
}
else if(ref instanceof SubTwo){
}
请注意:将始终返回。(ref instanceof Base)
true