【发布时间】:2019-05-09 16:59:37
【问题描述】:
我的目标是创建一个灵活的应用程序-> 扩展我的网络应用程序的功能,我只是向数据库添加一个位置并将缺少的类上传到服务器。
我在 Java-GWT 中创建了动态菜单。我使用 MenuBar() 和循环,所有位置都取自 db(数组,字符串)。 当然,菜单中的'end-option'必须做一些事情,一般点击后应用程序会打开,即带有按钮、标签、文本区域的FlowPanel。
我的想法是:使用 java 反射为菜单中的所有位置添加命令。 每个Command取选项名称(字符串),名称相同,如类名->next,点击后我会自动创建对象。不幸的是,Java 反射不适用于 GWT,所以这种方式是不可能的。
我的问题是:
当我在字符串中有类名时如何创建对象?或者如果我的想法是错误的,也许是创建灵活菜单/程序的其他方式?
【问题讨论】:
-
一种选择是将字符串发送到服务器(通过 RPC),在服务器端创建对象并通过相同的 RPC 调用将其返回。请注意,返回类型将为
Object,GWT 编译器将向您发出有关序列化性能的警告。 -
如果类 - 由 String 表示 - 在编译时是已知的,您可以尝试创建类似此处提到的内容:stackoverflow.com/questions/3034881/…。请记住,反射在 GWT 中不可用,因为 JavaScript 没有反射。
-
感谢您的所有建议。我仍在为我的问题寻找解决方案。我已经完成了第一步:我在命令中使用“延迟绑定”(在菜单栏中,但仍然是静态版本) - 在 FlowPanel 中,我动态使用在此方法中准备的任何对象。
标签: java reflection gwt eclipse-jee