Почему JsArrayString не реализует итеративный? - PullRequest
2 голосов
/ 15 ноября 2010

Быстрый вопрос здесь - я просто использовал JsArrayString в первый раз и был удивлен, что это не сработало:

JsArrayString object = ...;
for (String s : object)

Так что я просто написал цикл в стиле C:

JsArrayString object = ...;
for (int i=0; i<object.length(); i++) {
    s = object.get(i)
    ...

Ничего страшного, но кажется, что для команды GWT было бы просто реализовать JSArrayString итеративно, поэтому я хотел проверить и убедиться, что я ничего не пропустил ...

Ответы [ 2 ]

4 голосов
/ 16 ноября 2010

Я подозреваю, что это вопрос раздувания кода и в этом отношении размера кода. Если они заставят JsArray реализовать Iterable, это может открыть двери для других дополнений, которые не всегда были бы полезны. JsArray s должны быть максимально простыми и простыми, насколько это возможно.

Кроме того, вы можете написать свой собственный класс JsIterable, который делает это, если вы хотите, чтобы такое поведение, как вы сказали, должно быть довольно простым для реализации.

Проектный документ Lightweight Collections решает некоторые проблемы, связанные с использованием коллекций JRE и связанных с ними концепций, и обсуждает, какие функции могут быть оставлены без поддержки для обеспечения абсолютного минимального размера кода, включая:

До тех пор, пока компилятор GWT не сможет оптимизировать его (чего не может до настоящего времени), новые коллекции не будут поддерживать расширенный синтаксис цикла for для Java, использующий Iterable / Iterator. Мы верим, что такая оптимизация возможна и будет добавлена, однако в это время эти коллекции будут модифицированы для реализации Iterable.

0 голосов
/ 15 ноября 2010

Ты должен сделать это по-старому :). Проверьте источник этого.

...