gpt4 book ai didi

java - 如何在不使用反射的情况下将 Java 对象转换为键值对

转载 作者:行者123 更新时间:2023-12-01 17:33:22 24 4
gpt4 key购买 nike

是否可以转换纯Java Object与平常的getXXXsetXXX方法将其字段转换为键值对,例如 Map<String, Object>

我需要在不依赖 Java 反射的情况下实现此目的,因此它可以与 GWT 等 Java-To-Javascript 编译器一起使用。

最佳答案

GWT 带有一个名为 Deferred Binding 的机制作为反射的替代。而通常情况下,您只能通过调用GWT.create(Class<?>)来使用此API ,它还可以用于编写在 GWT 编译过程(即 Java 到 Javascript 翻译)期间调用的代码生成器。

您可以使用它来创建一个代码生成器,该生成器将为您的任何 POJO 类输出一个辅助类,其中包含 toMap()fromMap()方法。 GWT 提供的 API 与 Java 的反射 API 类似,具有类似 JClassType 的类。 , JMethod等等。这些可用于查询类(您想要为其生成代码)的 getter 和 setter,并相应地生成上述方法。

您的客户端代码基本上如下所示:

Pojo1 pojo1 = ...;
// Pojo1Transformer is the class that is generated for your domain class Pojo1
Pojo1Transformer pojo1Transformer = GWT.create(Pojo1Transformer.class);
Map<String, Object> pojo1AsMap = pojo1Transformer.toMap(pojo1);
...
pojo1AsMap.put(Pojo1Transformer.NAME, "New Name");
Pojo1 changed = pojo1Transformer.fromMap(pojo1AsMap);

关于java - 如何在不使用反射的情况下将 Java 对象转换为键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8777648/

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