java - 在 GWT 中探索数组而不知道其类型

标签 java arrays gwt reflection

我正在使用 GWT 构建对象的通用可视化工具。为此,我使用 gwt-ent 提供的反射功能。有了它,我可以探索方法和领域,这对于类来说就足够了。我仍然遇到的一个问题是 gwt-ent 不允许我探索数组。它为我提供了其组件的类型,但不是像 java.lang.reflection.Array 那样的 get() 或 set() 方法。

所以我使用了 native java.lang.reflection.Array,它在 Debug模式下奇怪地工作(这怎么可能?),但是当我进入生产模式时编译器会提示。

我尝试了一些技巧,例如使用 java.utils.Array.asList(T... a) 将数组转换为 ArrayList,但没有办法让它工作。我见过类似的问题here 。在这种情况下,建议之一是导入 com.google.gwt.lang.Array.createFrom(..) 提供的 JSNI 方法,但我可以在 the source code 中看到不幸的是,这个类有一个 set() 方法,但没有 get() 方法!

问题是:您是否有任何方法可以在不事先知道数组类型的情况下访问数组元素?

最佳答案

GWT 编译时不支持反射。它可以在开发模式下工作,因为调试时大部分代码都在 JVM 而不是浏览器中运行。

我建议修改 gwt-ent 生成器以满足您的要求,并将您的贡献发送给作者补丁,或者通过其他第三方库(如 gwt-reflector)更改 gwt-ent。

我发现的另一个有趣的 gwt 反射项目是 gwt-processor好像没有使用生成器。

关于java - 在 GWT 中探索数组而不知道其类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289929/

相关文章:

java - svg-android 库中 getDeclaredField() 上的 Android 6.0 (Marshmallow) 静态初始化异常

java - JSP 和 MVC 最佳实践

php - 将MYSQL结果拆分为4个数组

c - IO 结果。调整代码

java - 如何确保每个 3x3 block 都包含数独中的值

java - 使用 c++ java native 代码的 GraphicsMagick 性能问题

hibernate - 最佳实践——实体内部的 Hibernate 持久性代码?

java - 爬虫将 "mydomain#!article"转义为 "mydomain?_escaped_fragment_=article",如何找回原来的url?

gwt - Java 独立应用程序的 GUI。我应该使用 SWT 还是 GWT?

java - 使用FilenameFilter过滤java中文件夹及其子文件夹中的所有文件