2011-01-22 3 views
1

Изучая GWT, я столкнулся с еще одним типом инициализации. мне интересно, в чем разница между:Инициализация списка в GWT?

1) List<T> = new ArrayList<T>(); 

и

2) List<T> = Lists.newArrayList(); 

Какой из них имеет свои преимущества и почему?

+0

Вот полный исходный код: '@GwtCompatible (сериализации = истина) общественности статической ArrayList newArrayList() {вернуть новый ArrayList ();}'. Это просто приятный метод удобства, я всегда предпочитаю. – maaartinus

ответ

2

Я могу только предположить:

Когда вы работаете с дженерики это не удобно установить T как в List<T> и new ArrayList<T>(); Для устранения этого недостатка используются статические вспомогательные методы:

List<T> = Lists.newArrayList(); 

Здесь тип T определяется посредством вывода типа. А правило, такие методы реализованы следующим образом:

public static <T> List<T> newArrayList() { 
    return new ArrayList<T>(); 
} 
+1

Точно (см. Видео «Использование библиотеки коллекций Google для Java» [часть 1] (http://www.youtube.com/watch?v=ZeO_J2OcHYM) и [часть 2] (http://www.youtube. ком/смотреть? v = 9ni_KEkHfto)). Класс 'com.google.gwt.thirdparty.guava.common.collect.Lists' можно найти в gwt-dev.jar, но на самом деле это [Guava] (http://code.google.com/p/guava -libraries /) (ранее [Google Collections] (http://code.google.com/p/google-collections/)). –

+1

Если вы собираетесь сильно полагаться на Гуаву, вам следует обратиться к ней напрямую. Он включен в GWT только потому, что некоторые части GWT зависят от него, но эти зависимости могут неожиданно изменяться из-под вас. –

Смежные вопросы