java - 从 clojure 映射创建 java bean

标签 java clojure javabeans

clojure.core提供了bean,它可以从java对象创建clojure映射,但是是否有一个反函数可以从映射创建bean(java对象)?

最佳答案

取决于您具体需要什么。

Java中存在Bean类型

换句话说,您的 java 项目中有(比方说)一个 Customer.class,并且您希望根据映射中的数据通过 Clojure 实例化并填充该类。这可以简单地通过 java interop 完成。 .

在 Clojure 中创建的 Bean 类型

您可以使用AOT compilation创建一个 Javabean 类型,这将在磁盘上生成一个 .class 文件,并且可以在 Java 项目中使用(与任何没有相应 Java 源的 Java 类相同)。您可以使用 clj-bean避免使用 gen-class 的库手动。

在 Clojure 中动态创建 Bean 类型,无需 .class 文件

在这种情况下,您可以使用 deftype通过动态字节码创建来创建 bean(只需为 getter 和 setter 创建方法并将数据从映射移至映射)。

您可以找到上述所有方式的示例 in this project

关于java - 从 clojure 映射创建 java bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46791682/

相关文章:

dictionary - 在 Clojure 中将函数映射到映射的值

qt - 如何将 Clojure REPL 与 Qt Jambi 一起使用?

java - 如何在应用程序类中定义一个bean

java - 访问给定类型的所有 spring bean

java - 获取出现在 ListView 外部的 edittext 值,获取 OnItemClick 内部的 edittext 值

java - View 设置为 GONE 时不调用 Android onScrolled

java - 将 java bean 属性名称存储为常量并检查它们的一致性

java - struts2中如何禁止缓存?

java - 如何等待订阅完成?