Java 在一个类中调用getName()方法有效,但在另一个类中则无效

Java 在一个类中调用getName()方法有效,但在另一个类中则无效,java,arraylist,observable,Java,Arraylist,Observable,我正在制作一个程序来迭代对象的数组列表,并将它们打印到屏幕上。为此,我使用了一个getName()方法。当我从我的一个类调用它时,不会返回任何结果,但是从另一个类调用它是有效的 public class Customer { String name; public Customer(String name) { this.name=name; } public String getName() { return this.

我正在制作一个程序来迭代对象的数组列表,并将它们打印到屏幕上。为此,我使用了一个getName()方法。当我从我的一个类调用它时,不会返回任何结果,但是从另一个类调用它是有效的

public class Customer {

    String name;

    public Customer(String name) {
        this.name=name;
    }


    public String getName() {

        return this.name;
    }

}
上面的代码是我要调用的getName()方法

public class Store {

    private String name;
    private ArrayList<Customer> customersStore;

    public Store(String name) {
        this.name=name;
        customersStore=new ArrayList<Customer>();
    }

    public void addCustomer(Customer customer) {
        customersStore.add(customer);
        for(int i  = 0; i<customersStore.size();i++){
           System.out.print(customersStore.get(i).getName() + " ");
        }
    }

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

    public ArrayList<Customer> getCustomers() {
        return this.customersStore;
    }

}
然后将输入发送到StoreController以添加到ArrayList

public class StoreController extends Observable {

    private Store model;
    private StoreView view;

    public StoreController(Store model, StoreView view){
        this.model = model;
        this.view = view;
    }

    public void addCustomer(Customer name){
        model.addCustomer(name);
        setChanged();
        notifyObservers();
    }


}


我不太熟悉观察者,但该计划的总体目标是在客户通过StoreController添加到商店时更新StoreView。非常感谢您的帮助。

在更新观察者时,您正在创建
存储的新实例;因此,它有一个空的客户阵列。
更改
notifyobsers()至<代码>通知观察员(型号)和更新方法,以:

    @Override
    public void update(Observable o, Object store) {
        if (store instanceof Store) {
            printStoreDetails((Store) store);
        }
    }

据我们所知,你从未在那家商店增加过顾客。您需要显示所有相关的代码,以便我们理解handI上的问题。我添加了显示数据输入方式的其余类。它是通过扫描仪输入的,然后随着每个新输入,arraylist将使用更新的条目再次打印。这不是我通常处理这个问题的方式,但使用观察者是需求的一部分。
public class StoreController extends Observable {

    private Store model;
    private StoreView view;

    public StoreController(Store model, StoreView view){
        this.model = model;
        this.view = view;
    }

    public void addCustomer(Customer name){
        model.addCustomer(name);
        setChanged();
        notifyObservers();
    }


}

    @Override
    public void update(Observable o, Object store) {
        if (store instanceof Store) {
            printStoreDetails((Store) store);
        }
    }