在java中创建对象后更改对象字段
我有三个类第一,第二,第三,第三个类有一个字段名,我正在创建一个三个类的对象,现在在创建对象之后,我想将第三个类字段的名称从“john”更改为“sam”,如何在不创建新的第三个类对象的情况下更新它在java中创建对象后更改对象字段,java,Java,我有三个类第一,第二,第三,第三个类有一个字段名,我正在创建一个三个类的对象,现在在创建对象之后,我想将第三个类字段的名称从“john”更改为“sam”,如何在不创建新的第三个类对象的情况下更新它 public class First { List<Second> second; public List<Second> getSecond() { return second; } public void setSec
public class First {
List<Second> second;
public List<Second> getSecond() {
return second;
}
public void setSecond(List<Second> second) {
this.second = second;
}
}
第三
试验
公共类测试{
公共静态void main(字符串[]args){
第三个=新的第三个();
第三,设置名称(“约翰”);
第二秒=新的第二秒();
列表=新的ArrayList();
列表。添加(第二);
第二,第三(三);
第一个=新的第一个();
第一。第二(列表);
//如何设置将第三个对象名称从john更改为Sam
System.out.println(first.second.get(0.third.toString());
}
}
当您首先拥有类的实例时,您可以使用getter获取所需对象,然后将其用于字段:
first.getSecond().get(0).getThird().setName("Sam");
p.S.这是不安全的,因为您可以获得NPE
或例如second
列表可能为空。您将名称更改为Sam的方式与将其更改为“john”的方式相同:third.setName(“Sam”)代码>在真实代码中,我没有权限设置字段如果您没有权限设置字段,则不要设置它们!开发人员没有给您访问权限是有原因的。请检查更新的问题
public class Third {
protected String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Third{" +
"name='" + name + '\'' +
'}';
}
}
public class Test {
public static void main(String[] args) {
Third third = new Third();
third.setName("john");
Second second = new Second();
List<Second> list = new ArrayList<>();
list.add(second);
second.setThird(third);
First first = new First();
first.setSecond(list);
// How can I set change Third object name from john to Sam
System.out.println(first.second.get(0).third.toString());
}
}
first.getSecond().get(0).getThird().setName("Sam");