2

这里有一个快速的问题——我只是第一次使用 JsArrayString,很惊讶这不起作用:

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

所以我只写了一个 C 风格的 for 循环:

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

没什么大不了的,但对于 GWT 团队来说,让 JSArrayString 实现可迭代似乎很简单,所以我想检查并确保我没有遗漏任何东西......

4

2 回答 2

4

我怀疑这是代码膨胀和代码大小的问题。如果他们制作了JsArrayimplement Iterable,它可能会为其他并不总是有用的添加打开大门。 JsArrays 意味着绝对尽可能简单和准系统。

此外,如果您想要这种行为,您可以编写自己的JsIterable类来执行此操作,正如您所说,实现起来应该很简单。

轻量级集合设计文档解决了使用 JRE 集合和相关概念的一些问题,并讨论了哪些功能可能不被支持以确保绝对最小代码大小,包括:

在 GWT 编译器可以对其进行优化之前(它至今无法优化),新集合将不支持使用 Iterable/Iterator 的 Java 增强型“for”循环语法。我们确实相信这样的优化是可能的,并且会被添加,但是,到那时,这些集合将被改造以实现 Iterable。

于 2010-11-15T21:10:12.297 回答
0

你必须用老派的方式来做:)。查看它的来源

于 2010-11-15T18:13:06.937 回答