数组列表中的Java对象

数组列表中的Java对象,java,arraylist,Java,Arraylist,我想为我创建的每个对象自动运行更新函数。我必须在代码中更改什么,不幸的是它不起作用 如何在ArrayList中初始化对象 :( 创建Arraylist并使用名称初始化 public class Main { public static void main(String... args) { Zuhoerer Maria = new Zuhoerer("Maria"); Zuhoerer Sepp = new Zuhoerer("Sepp");

我想为我创建的每个对象自动运行更新函数。我必须在代码中更改什么,不幸的是它不起作用

如何在ArrayList中初始化对象

:(

创建Arraylist并使用名称初始化

public class Main {
    public static void main(String... args) {
        Zuhoerer Maria = new Zuhoerer("Maria");
        Zuhoerer Sepp = new Zuhoerer("Sepp");
        Zeitansager.sagAn();
    }
}

class Zuhoerer {
    private String name;
    private String Ansager;

    Zuhoerer(String name) {
        this.name = name;
    }

    private void setAnsager(String datumstring) {
        Ansager = datumstring;
    }

    void update() {
        setAnsager(Zeitansager.getZeit());
        Zeitansager.schreibeEin(name);
        System.out.println(name + " hat gerade die die Zeitansage gehört: 
    [Datum/Uhrzeit]: " + Ansager);
        Zeitansager.trageAus(name);
    }
}

class Zeitansager {
    private static String datumString;
    private static ArrayList<String> abonnenten;

    Zeitansager(String datumString) {
        Zeitansager.datumString = datumString;
        abonnenten = new ArrayList<>();
    }

    static void schreibeEin(String name) {
        abonnenten.add(name);
    }

    static void trageAus(String name) {
        abonnenten.remove(name);
    } 


    static void sagAn() {
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.YYYY' 'HH:mm:ss");
        String datum = sdf.format(new Date());
        datumString = datum;
        for (int i=1; i <= abonnenten.size(); i++) {
            abonnenten.update();
        }
    }
    static String getZeit() {
        return datumString;
    }
}
公共类主{
公共静态void main(字符串…参数){
Zuhoerer Maria=新Zuhoerer(“玛丽亚”);
Zuhoerer Sepp=新Zuhoerer(“Sepp”);
Zeitansager.sagAn();
}
}
Zuhoerer类{
私有字符串名称;
私人串安萨格;
Zuhoerer(字符串名){
this.name=名称;
}
私有void setAnsager(字符串datumstring){
Ansager=datumstring;
}
无效更新(){
setAnsager(Zeitansager.getZeit());
Zeitansager.schreibeEin(姓名);
System.out.println(name+“hat gerade die Zeitansage gehört:
[Datum/Uhrzeit]:“+Ansager);
Zeitansager.trageAus(姓名);
}
}
Zeitansager类{
私有静态字符串datumString;
私有静态数组列表;
Zeitansager(字符串数据字符串){
Zeitansager.datumString=datumString;
abonnentent=newarraylist();
}
静态void schreibeEin(字符串名称){
添加内容(名称);
}
静态void trageau(字符串名称){
删除内容(名称);
} 
静态void sagAn(){
SimpleDataFormat sdf=新的SimpleDataFormat(“dd.MM.YYYY”“HH:MM:ss”);
字符串数据=sdf.format(新日期());
datumString=基准;
要使(int i=1;i在每次创建对象时运行“update”函数,必须在构造函数中调用此函数。如下所示:

Zuhoerer(String name) {
    this.name = name;
    update();
}
你想用你的arraylist做什么?给我更多的细节,这样我可以试着帮助你

  • Zeitansager
    中的
    ArrayList
    必须是
    Zuhoerer
    类型,而不是
    String

  • 然后在
    sagAn()
    中的循环中,您需要调用:

  • 而不是:

                abonnenten.update();
    
  • 最后,您的方法
    静态void schreibeEin(字符串名)
    ,实际上应该将
    Zuhoerer
    作为参数
  •             abonnenten.update();