gpt4 book ai didi

java - 从bean动态构建表

转载 作者:行者123 更新时间:2023-11-30 04:15:52 26 4
gpt4 key购买 nike

我正在构建一个应用程序,其中包含许多表示给定数据行详细信息的表(或表单)。有些非常大,必须一一添加字段(带有处理程序、逻辑等),这并不是很好。

我想要的是有一个工厂能够构建给定 bean 的表单(或表)。我使用 Java 反射创建了一个非常好的工厂,却发现 GWT 不支持它......

有什么可以满足我的需求吗?

最佳答案

因为 GWT 的编译是整体(不可能存在编译时未知但在运行时使用的类),这意味着可以生成代码。

因为它可以生成,这意味着您可以在GWT编译期间使用所谓的deferred binding来完成它。 GWT 生成器可以对编译时已知的类使用反射,它只是一个与 java.reflect 不同的 API (就像 Java 注释处理器也使用不同的 API 一样)。

因此,您可以通过一个共同点来识别生成时需要考虑的类(例如,它们都实现相同的标记接口(interface),或扩展相同的基类)并为每个类生成一个表/表单,以及:

  • 带有您编辑/渲染对象的类型参数的接口(interface),可以直接表示生成的表格/表单;您将创建一个子接口(interface)修复类型参数和 GWT.create()你的界面,就像 PlaceHistoryMapperWithFactory , UiBinderSimpleBeanEditorDriver工作。
  • 为给定的 Class<?> 返回正确的表格/表单的工厂对象(使用 if (klazz == Foo.class) { return new … } else if … 级联);其工作方式类似于 RequestFactory 的 RequestContext.create()

您将从代码中看到的所有内容将是:

  • 标识可渲染对象的标记接口(interface)或基类
  • 生成的表单/表格的接口(interface)或基类,将由工厂或 GWT.create() 返回
  • 可能是工厂的接口(interface)或基类,您可以将其传递给 GWT.create()触发生成器并获取生成的实现

关于java - 从bean动态构建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18407149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com