这里有一个简单的问题 - 我刚刚第一次使用 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 实现可迭代似乎很简单,所以我想检查并确保我没有遗漏一些东西......
最佳答案
我怀疑这是代码膨胀以及代码大小的问题。如果他们让 JsArray
实现 Iterable
,它可能会为其他并不总是有用的添加打开大门。 JsArray
的目的是绝对尽可能简单和准系统。
此外,如果您想要这种行为,您可以编写自己的 JsIterable
类来执行此操作,正如您所说,实现起来应该非常简单。
Lightweight Collections设计文档解决了有关使用 JRE 集合和相关概念的一些问题,并讨论了可以不支持哪些功能以确保绝对最小的代码大小,包括:
Until the GWT compiler can optimize it (which it cannot to date), the new collections will not support the Java enhanced 'for' loop syntax that uses Iterable/Iterator. We do believe such optimizations are possible and will be added, however, at which time, these collections will be retrofitted to implement Iterable.
关于javascript - 为什么 JsArrayString 不实现可迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187337/