如何将用户输入与类中所有对象的实例变量进行比较

时间:2013-11-04 13:11:30

标签: java class oop object

所以,我正在尝试将字符串与另一个类的实例变量进行比较,而我想不出为所述类的所有对象执行此操作的方法。   我确信如果发生这种情况的方法正在运行,我有4个包含实例变量的类对象。   目标是比较用户给我的字符串,如果它等于先前定义的对象的字符串,则更改该对象中的另一个实例变量。   在sudo-code中,它将是这样的:

if (colourInput == colourofAnyObjectOfTheClass)
   sizeOfThatObject = sizeInput;
else
   new Object(colourInput, sizeInput);

我之前已经定义了colourInput和sizeInput。  我怎样才能在Java中实现它?

2 个答案:

答案 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>,它将键映射到实体并用它来加速搜索。