所以,我正在尝试将字符串与另一个类的实例变量进行比较,而我想不出为所述类的所有对象执行此操作的方法。 我确信如果发生这种情况的方法正在运行,我有4个包含实例变量的类对象。 目标是比较用户给我的字符串,如果它等于先前定义的对象的字符串,则更改该对象中的另一个实例变量。 在sudo-code中,它将是这样的:
if (colourInput == colourofAnyObjectOfTheClass)
sizeOfThatObject = sizeInput;
else
new Object(colourInput, sizeInput);
我之前已经定义了colourInput和sizeInput。 我怎样才能在Java中实现它?
答案 0 :(得分:1)
When comparing Strings,您应该使用String#equals()方法,而不是==
运算符。
if (colourofAnyObjectOfTheClass.equals(colourInput)) {
sizeOfThatObject = sizeInput;
} else {
new SomeObject(colourInput, sizeInput);
}
答案 1 :(得分:0)
您应该考虑创建某类类的实例存储库,该类是将管理对象创建的类,以便跟踪它们。
class MyEntityRepository {
private List<MyEntity> entities;
public MyEntity createOrUpdate(String color, Integer size) {
MyEntity entity = findByColor(color);
if (entity != null) {
entity.setSize(size);
} else {
entity = new MyEntity(color, size);
entities.add(entity);
}
return entity;
}
private MyEntity findByColor(String color) { ... }
}
如果你有很多实体,你可以创建某种索引,例如store Map<String, MyEntity>
,它将键映射到实体并用它来加速搜索。