Java 从bean动态构建表
我正在构建一个应用程序,其中有许多表(或表单)表示给定数据行的详细信息。 有些是相当大的,它不是真的很好,必须添加字段(与处理程序,逻辑等)一个接一个 我希望有一个工厂能够在给定bean的情况下构建表单(或表)。 我使用Java反射创建了一个非常好的工厂,结果发现GWT不支持它Java 从bean动态构建表,java,gwt,javabeans,Java,Gwt,Javabeans,我正在构建一个应用程序,其中有许多表(或表单)表示给定数据行的详细信息。 有些是相当大的,它不是真的很好,必须添加字段(与处理程序,逻辑等)一个接一个 我希望有一个工厂能够在给定bean的情况下构建表单(或表)。 我使用Java反射创建了一个非常好的工厂,结果发现GWT不支持它 有什么可以满足我的需要吗?因为GWT的编译是单片的(没有在编译时未知但在运行时使用的类),这意味着可以生成代码 因为它可以生成,这意味着您可以在GWT编译期间使用所谓的。GWT生成器可以在编译时已知的类上使用反射,它只是
有什么可以满足我的需要吗?因为GWT的编译是单片的(没有在编译时未知但在运行时使用的类),这意味着可以生成代码 因为它可以生成,这意味着您可以在GWT编译期间使用所谓的。GWT生成器可以在编译时已知的类上使用反射,它只是一个不同于
java.reflect的API(就像java注释处理器也使用不同的API一样)
因此,您可以使用一个公共分母来标识在生成过程中需要考虑的类(例如,它们都实现相同的标记接口,或扩展相同的基类),并为每个类生成一个表/表单,并且:
- 具有编辑/呈现对象类型参数的接口,可直接表示生成的表/表单;您需要创建一个子接口来修复类型参数和
GWT.create()
您的接口,就像PlaceHistoryMapperWithFactory
、UiBinder
或SimpleBaneditorDriver
工作一样
- 为给定的
类对象返回正确表/表单的工厂(使用if(klazz==Foo.Class){returnnew…}else if…
);这与RequestFactory的工作原理类似
您将从代码中看到:
- 标识可渲染对象的标记接口或基类
- 工厂或
GWT.create()
- 可能是工厂的接口或基类,您可以将其传递到
GWT.create()
,以触发生成器并获取其生成的实现