gpt4 book ai didi

java - 如何使用父类(super class)实例在运行时访问子类字段

转载 作者:行者123 更新时间:2023-12-02 12:26:21 25 4
gpt4 key购买 nike

我有两个 java 对象:WorkflowVoTypeAWorkflowVoTypeAWorkflowVoWorkflowVo 的子类。 WorkflowVo 具有字段 - 名称、profitCenter。TypeAWorkflowVo 有字段 Schedule、Entity。

我使用

TypeAWorkflowVo 存储在列表中
List<? extends WorkflowVo> lsWfItems  = new ArrayList<TypeAWorkflowVo>();

是否可以在运行时从lsWfItems访问TypeAWorkflowVo(计划、实体)的字段?

我只能在运行时看到 WorkflowVo 字段(名称、利润中心)。换句话说,我只在 lsWfItems 中看到 WorkflowVo 对象。请指教。

最佳答案

您当前编写的方式将不起作用。您确实有几个选择

  1. 检查每个项目的类型是否为 TypeAWorkflowVo,然后转换为此类并检索值
  2. 使用 TypeAWorkflowVo 的类型参数创建列表
  3. 使 TypeAWorkflowVo 上的字段可通过 WorkflowVo 上的通用抽象方法进行访问
  4. 将字段移至 WorkflowVo

每种方法都有其优点和缺点,决定完全取决于具体情况和该对象的定义。这些字段是否应该属于父类(super class)?该列表应该属于子类还是父类(super class)。您可以从应用程序中的每种方法中获得什么。所有这些都将在应用程序中得到解答

关于java - 如何使用父类(super class)实例在运行时访问子类字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45469941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com