gpt4 book ai didi

java - 如何创建一个填充不同类型对象的 ArrayList?

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

我有不同的银行系统类。这些类是;

  • 储蓄账户
  • 学生帐户
  • 普通帐户

现在我想创建一个 ArrayList 并用所有这些不同类的对象填充它,例如第一个元素是 Studentaccount1,第二个元素是 savingaccount 2...等等。

所以我尝试使用对象类型:

List<Object> accountList = new ArrayList<>();

但是使用这种方法,由于某种原因,我无法访问存储在类变量中的值,例如:

accountList.add(saving1);

accountList.get( saving1) 不会调用这些类中声明的方法。

那么我该如何解决这个问题,或者以另一种方式实现它?

编辑:

我忘了提及,普通帐户是父类,StudentAccountSavingsAccount 都是子类。

因此我意识到我可以将 ArrayList 声明为 NormalAccount 类型(父类类型)来代替并实现我想要的。

最佳答案

创建一个具有通用方法的接口(interface)Account,并让所有这些帐户都实现它。

public class SavingsAccount implements Account { ... }

然后创建实现此接口(interface)的类型的列表。

List<Account> accountList = new ArrayList<>();

我不建议您仅为此目的创建标记界面。这是一个坏主意。接口(interface)应该有公共(public)方法。

或者,Account 本身可以是一个(抽象)类,这些特定帐户将从它扩展 - 包括通用功能以避免代码重复。这取决于您到底想要实现什么以及哪一个适合您的设计。

编辑:

您错过了向我们透露一个非常重要的事实,即 NormalAccount 是其他帐户的父级。因此解决方案非常简单:

List<NormalAccount> accountList = new ArrayList<>();

关于java - 如何创建一个填充不同类型对象的 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50450179/

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