問我有這樣的代碼片段的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