问我有这样的代码片段的Java:上断言行为
import java.util.ArrayList;
import java.util.List;
public class AssertTest {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
assert(list.add("test")); //<-- adds an element
System.out.println(list.size());
}
}
输出:
0
为什么输出列表是空的? assert如何在这里表现? 提前谢谢!
是的,它的确如此。我只是激活了-ea标志并输出1. – Simon 2011-03-22 09:30:04
ok - 'add()'返回一个布尔值。我不知道的东西,但我仍然不想知道。这种返回类型只是愚蠢的。如果'Collection'的子类型需要提供这样的功能,子类型可以添加一个新的方法。 – irreputable 2011-03-22 09:36:11
当使用'HashSet >'时,'add()'返回一个布尔值的事实可能会很有用。如果您尝试添加与集合中包含的哈希代码相同的哈希代码,那么add()方法将返回false。你也可以考虑'Collection >'只允许'n'值。所以返回值是完全合理的。 – Simon 2011-03-24 11:59:51