如果我有一个名为“TestClass”的类,其中充满了 getter 和 setter,然后我在另一个类中的类对象上设置了一些属性,如下所示:
TestClass testClass = new TestClass();
testClass.setAppId("id");
testClass.setStatus("Status");
testClass.setMessage("Message");
List<TestClass> list = dataProvider.getList();
然后,在将此对象添加到我的 java 列表之前,我必须确保它不存在于列表中以避免重复。
为了实现此目的,我执行以下检查以查看相应值的所有三个属性是否都存在于列表中的 testClass 对象中。如果他们不这样做,那么它可能会被添加到列表中。
if(!list.contains(testClass.getAppId().equals("id")) &&
!list.contains(testClass.getStatus().equals("Status")) &&
!list.contains(testClass.getMessage().equals("Message"))) {
list.add(testClass);
}
dataProvider.refresh();
上面的代码位于点击处理程序中,因此仅在单击按钮时执行。
为什么尽管我徒劳地尝试阻止重复项进入列表,但我却无法阻止将重复记录添加到 gwt 中的单元格表中?
我认为列表逻辑是问题所在是错误的吗?
感谢您的帮助,我希望我已经足够彻底了。
最佳答案
您的 testClass.getAppId().equals("id")
调用返回 true
或 false
。您的列表不“包含”true
或 false
,因此条件变为 true
并且添加了该元素。代码应如下所示:
for(TestClass testClass: list){
if(!testClass.getAppId().equals("id") &&
!testClass.getStatus().equals("Status") &&
!testClass.getMessage().equals("Message")){
list.add(testClass);
}
}
dataProvider.refresh();
关于java - 防止列表中的重复项目打印到单元格表gwt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31270545/