这有两件事。它将一个项目添加到列表中,同时添加,还会评估该项目是否存在于列表中,并显示一条消息。这是某种现实世界的做法,还是应该把它视为黑客?它如何在后端工作。
if(!list.add(value)) {
//message
}
虽然我会做这样的事情。
boolean res = list.add(value);
if (!res) {
//print out a message
}
答案 0 :(得分:2)
这不是黑客; List.add()
返回boolean
(即操作是否成功)。
然而,许多人会认为你的代码段中的代码是一种令人不愉快的编码风格(即隐藏在表面看来是条件检查的副作用)。将其拆分为两行将是首选方法:
final boolean success = list.add(value);
if (!success) {
// message
}
(当然,这里的价格增加了详细程度。)
答案 1 :(得分:0)
除现有答案外。
List#add将始终返回true,因为它是无界的并且可以包含重复项。如果要添加已在集合中的元素,Set#add可能会返回false。因此,您可以使用Collection#add方法的结果来检查您添加的元素是否更改了集合。