Java 从对象的getter调用列表上的add无法按预期工作
因此,我有一个带有列表字段的对象,我使用getter访问列表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; }
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