java - 不使用instanceOf来识别不同类数组中的一个类

标签 java android instanceof

我不想硬连线类名并使用 instanceOf 但动态标识类

假设我有

// add fragments
mFragments = new ArrayList<Fragment>();
mFragments.add(Fragment.instantiate(this, class1.class.getName()));
mFragments.add(Fragment.instantiate(this, class2.class.getName()));

public class class1 extends SherlockListFragment{
   public static final String TAG = "class1";
}

所有类都有 extends SherlockActivity 或 SherlockListFragment,因此它们有一个共同的基类 Fragment。我现在如何在遍历数组时获得例如static 标记或其他无需使用 instanceOf 即可识别 Class 的内容。我有一些 ide,但想获得一些输入以便我可以学习

 public static final String TAG = "class1"

最佳答案

在基类中添加一个返回标记的方法。然后迭代您的结构并获取每个子类型的标签。

public class SherlockListFragment{
    public String getTag(){ 
        return TAG;
    }
}

您不需要确定类的确切子类型。每当您开始遇到此类奇怪问题时,我建议您首先重新设计,而不是寻找解决方法。

关于java - 不使用instanceOf来识别不同类数组中的一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383647/

相关文章:

javascript - 为什么 getPrototypeOf 'null' 会出错?

java - 尽管调用了 onSaveInstance,但 savedInstanceState 在 OnCreate 中始终为 null

java - Android Realm 关系返回 null

android - 移动设备的 HTML 响应字体大小

typescript - 为什么 TypeScript 中的 instanceof 不适用于继承的类?

java - 如何在同一行代码中正确使用instanceof和compareTo?

java - 测量阵列之间的重叠

java - WebDriver + Internet Explorer,switchTo.window 问题

java - indexOf 查找字符串中所有出现的单词

java - MLKit BarCode Sanner Implementation 在执行 ML Kit 任务时导致内部错误