Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从对象的getter调用列表上的add无法按预期工作_Java_Oop - Fatal编程技术网

Java 从对象的getter调用列表上的add无法按预期工作

Java 从对象的getter调用列表上的add无法按预期工作,java,oop,Java,Oop,因此,我有一个带有列表字段的对象,我使用getter访问列表 public class Customers{ private List<String> names; public Customers(List<String> names){ this.names = names; } public List<String> getNames(){ return names; }

因此,我有一个带有列表字段的对象,我使用getter访问列表

public class Customers{
    private List<String> names;

    public Customers(List<String> names){
        this.names = names;
    }

    public List<String> getNames(){
        return names;
    }

    public String toString(){
         StringBuilder sb = new StringBuilder();
        for(String name: this.names){
             sb.append("Customer:");
             sb.append(name);
             sb.append("\n");
         }
    }
}
在添加了一堆这样的元素之后,当我打印customer.toString时,它只显示

Customer: Tupac

为什么add不能按预期工作?

您发布的示例代码有语法错误。修复这些问题,代码就会满足您的需要

public class Customers {

    private List<String> names;

    public Customers(List<String> names) {
        this.names = names;
    }

    public List<String> getNames() {
        return names;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        for (String name : this.names) {
            sb.append("Customer:");
            sb.append(name);
            sb.append("\n");
        }
        return sb.toString();
    }
}
结果:

Customer:Tupac
Customer:Abba

你能提供一个更大的代码样本吗?很难扣除遗漏的细节。你发布的代码无法编译。您没有从toString方法返回任何内容,该方法声明了字符串的返回类型。更不用说其他打字错误,如客户/客户。请发布您的实际代码。由于这是公认的答案,很有可能OP向我们撒谎,因为在添加了一系列类似的元素后,当我打印customer.toString时,它只显示不可能为真,或者发布了错误的代码,因为问题中的代码不完整。这是非常令人失望的。谢谢你@Shar1er80,回答得好。
public static void main(String[] args) {
    Customers customers = new Customers(new ArrayList());
    customers.getNames().add("Tupac");
    customers.getNames().add("Abba");
    System.out.println(customers);
}
Customer:Tupac
Customer:Abba