在我的Java程序中是否有一種使用Collection.EMPTY_LIST的泛型友好方法。我可以使用Collections.EMPTY_LIST而不使用UncheckedException嗎?
我知道我可以自己聲明一個,但我只是想知道是否有辦法在JDK中這樣做。
喜歡的東西users = Collections<User>.EMPTY_LIST;
在我的Java程序中是否有一種使用Collection.EMPTY_LIST的泛型友好方法。我可以使用Collections.EMPTY_LIST而不使用UncheckedException嗎?
我知道我可以自己聲明一個,但我只是想知道是否有辦法在JDK中這樣做。
喜歡的東西users = Collections<User>.EMPTY_LIST;
通過執行以下操作:
List<User> users = Collections.emptyList();
從Collections.emptyList();
類型返回列表的將是推斷爲String
由於分配的左手側。
List<User> users = Collections.<User>emptyList();
在這種特定情況下,這可能會出現多餘的大多數人(其實,我很看到:但是,如果你喜歡就沒有這個推論,你可以明確地通過執行以下操作定義它小碼出的是利用了顯式類型參數)的野性,但與簽名的方法:void doStuff(List<String> users)
這將是完全乾淨的一個具有顯式類型參數調用doStuff()
如下:
doStuff(Collections.<String>emptyList());
List<User> users = Collections.emptyList();
肌酸後g空的列表,我建議將它存儲爲一個常量,而不是每次創建一個新的列表。
此外,使用Collections.emptyList()
與new ArrayList(0)
的性能優勢相比,雖然差別可能很小。 emptyList()返回的列表被優化爲不可變的空列表。例如,size()方法只返回0,而不是字段查找或任何ArrayList。
每當你在一個方法中寫下一個明確的類型參數時,上帝殺死一隻小貓(我認爲這是喬什布洛克說的) – 2009-05-12 08:38:00