项目已name,price,condition属性.我想保留price,condition但更换name.
现在我通过创建新对象来解决这个问题,但我认为这不是最佳选择.我只想更改ArrayList项的一个字段
public void modify(String name) {
for (Item i : item) {
if (i.getName().equalsIgnoreCase(name)) {
int position = item.indexOf(i);
System.out.println("New name: ");
String newName = in.nextLine();
Item updated = new Item(newName, i.getPrice(), i.getCondition(), i.getSize());
item.set(position, updated);
}
}
}
Run Code Online (Sandbox Code Playgroud)
您不必插入新项目 ArrayList
public void modify(String name) {
for (Item i : item) {
if (i.getName().equalsIgnoreCase(name)) {
System.out.println("New name: ");
String newName = in.nextLine();
i.setName(newName);
}
}
}
Run Code Online (Sandbox Code Playgroud)
假设你已经为每个字段设置了方法.然后你可以这样更新名称,价格,尺寸
您可以updateName在Item类中拥有一个方法,然后只更新对象的名称:
item.get(index).updateName(newName);
Run Code Online (Sandbox Code Playgroud)
item.get(index)返回一个Item对象,您可以在该对象上应用该updateName方法.