【问题标题】:how should i add an object to a private static ArrayList?我应该如何将对象添加到私有静态 ArrayList?
【发布时间】:2020-03-19 07:07:54
【问题描述】:

我有 Bank 类,具有存储所有银行的私有静态 ArrayList。我怎样才能将每一个创建的新银行添加到它? 我不允许创建任何新方法或字段,或更改任何方法或构造函数参数。

这是我的银行类:

    public class Bank {
        private static ArrayList<Bank> allBanks=new ArrayList<Bank>();
        private String name;

        public Bank(String name) {
             this.name = name;
        }
    public String getName() {
            return name;
        }

这是我的主课:

    public class Main {
        public static void main(String[] args) {
             new Bank("randomBankName");
            }
    }

【问题讨论】:

  • 在你的银行类中添加一个执行的方法:allBanks.add(...);这个方法可以是静态的,也可以是实例的
  • 如我所说,我不允许添加任何新方法
  • 你可以尝试使用反射,但你为什么还要这样做呢?
  • 你有糟糕的类架构,你需要重写它!这段代码有味道... BankList 必须是外部结构,在构造函数中作为参数传递
  • 有一个 uml 我必须与程序匹配

标签: java class arraylist private-members


【解决方案1】:

在构造函数中执行:

    public Bank(String name) {
         this.name = name;
         allBanks.add(this);
    }

警告千万不要在实际项目中这样做。

【讨论】:

  • 哇,谢谢。但你为什么不在实际项目中推荐它呢?
  • @negar.n 说来话长。短版:它使代码难以维护。
  • @negar.n 哪一行?
【解决方案2】:

你没有说你不能改变字段的可见性,所以这是一种方法:让ArrayListpublic

如果你也不能这样做,还有最后一种方法,我永远不会这样做:反射。 在大多数情况下,这确实是最后一种方式,不推荐!

【讨论】:

    猜你喜欢
    • 2021-05-26
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    相关资源
    最近更新 更多