javascript - 为什么 JsArrayString 不实现可迭代?

标签 javascript json gwt overlay jsni

这里有一个简单的问题 - 我刚刚第一次使用 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/

相关文章:

javascript - 更新 Firestore 文档时可以动态更改键和值吗?

javascript - 可以在 aframe 实体上捕获键盘事件吗

java - 应为 BEGIN_OBJECT,但在 Gson 中为 STRING

json - 在 Matlab 结构体的字段名称中使用句点

java - 使用 SmartGWT 包装预制元素?

php - 在 PHP 中隐藏 JavaScript

javascript - 使用正则表达式从字符串中捕获具有特定规则的所有匹配项

java - 将具有多个对象的json文件读入 map java

java - 架构/最佳实践 - GWT Web 应用程序中用于 dtos 的最佳方法/模式

gwt - 使用带有 HashMap 的 GWT 的 AutoBean 反序列化时出现 NullPointerException