这里的快速问题 - 我第一次使用了JsArrayString,并对这不起作用感到惊讶:
JsArrayString object = ...;
for (String s : object)
所以我刚写了一个C风格的循环:
JsArrayString object = ...;
for (int i=0; i<object.length(); i++) {
s = object.get(i)
...
没什么大不了的,但似乎GWT团队很容易让JSArrayString实现可迭代,所以我想检查并确保我没有遗漏某些东西......
答案 0 :(得分:4)
我怀疑这是代码膨胀和代码大小的问题。如果他们JsArray
实施Iterable
,它可能会为其他不会有用的添加打开大门。 JsArray
应该尽可能简单和准确。
此外,如果您想要这种行为,您可以编写自己的JsIterable
类来执行此操作,正如您所说,实现它应该非常简单。
Lightweight Collections设计文档解决了有关使用JRE集合和相关概念的一些问题,并讨论了哪些功能可能不受支持以确保绝对最小代码大小,包括:
直到GWT编译器可以对其进行优化(它迄今为止还不能),新的集合将不支持使用Iterable / Iterator的Java增强的'for'循环语法。我们相信这样的优化是可能的,并且会被添加,但是,这些集合将被改进以实现Iterable。
答案 1 :(得分:0)
你必须以老派的方式去做:)。查看the source。