public static void main(String[] args) {
class Person {
private String name;
private Integer age;
private BigDecimal money;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public Integer getAge() { return age; }
public void setAge(Integer age) { this.age = age; }
public BigDecimal getMoney() { return money; }
public void setMoney(BigDecimal money) { this.money = money; }
}
Person person = new Person();
List<Person> list1 = new ArrayList<>();
person.setAge(11);
person.setName("绿某");
person.setMoney(new BigDecimal("22"));
list1.add(person);
list1.forEach(s -> System.out.println("第一个 -> 年龄:" + s.getAge() + "姓名:" + s.getName() + "价格:" + s.getMoney().toString()));
List<Person> list2 = new ArrayList<>();
person.setAge(33);
person.setName("红某");
person.setMoney(new BigDecimal("44"));
list2.add(person);
list1.forEach(s -> System.out.println("第一个 -> 年龄:" + s.getAge() + "姓名:" + s.getName() + "价格:" + s.getMoney().toString()));
list2.forEach(s -> System.out.println("第二个 -> 年龄:" + s.getAge() + "姓名:" + s.getName() + "价格:" + s.getMoney().toString()));
}
//输出
//第一个 -> 年龄:11姓名:绿某价格:22
//第一个 -> 年龄:33姓名:红某价格:44
//第二个 -> 年龄:33姓名:红某价格:44
正确的做法是重新new一个对象
public static void main(String[] args) {
class Person {
private String name;
private Integer age;
private BigDecimal money;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public Integer getAge() { return age; }
public void setAge(Integer age) { this.age = age; }
public BigDecimal getMoney() { return money; }
public void setMoney(BigDecimal money) { this.money = money; }
}
Person person = new Person();
List<Person> list1 = new ArrayList<>();
person.setAge(11);
person.setName("绿某");
person.setMoney(new BigDecimal("22"));
list1.add(person);
list1.forEach(s -> System.out.println("第一个 -> 年龄:" + s.getAge() + "姓名:" + s.getName() + "价格:" + s.getMoney().toString()));
Person person2 = new Person();//或者 Person person2 = list1.get(0);
List<Person> list2 = new ArrayList<>();
person2.setAge(33);
person2.setName("红某");
person2.setMoney(new BigDecimal("44"));
list2.add(person2);
list1.forEach(s -> System.out.println("第一个 -> 年龄:" + s.getAge() + "姓名:" + s.getName() + "价格:" + s.getMoney().toString()));
list2.forEach(s -> System.out.println("第二个 -> 年龄:" + s.getAge() + "姓名:" + s.getName() + "价格:" + s.getMoney().toString()));
}
//输出
//第一个 -> 年龄:11姓名:绿某价格:22
//第一个 -> 年龄:11姓名:绿某价格:22
//第二个 -> 年龄:33姓名:红某价格:44