我在一个简单的例子中使用defrecord,比如说:
(defrecord Person [fname lname address])
我正在使用一个需要0-params构造函数的工具,因此尝试在JVM上使用上述内容会导致:
CompilerException java.lang.RuntimeException:
Couldn't find 0-params constructor for class:
class user.Hello, compiling:(form-init5503453667732926891.clj:1:13)
生成0-param构造函数的最快/最美的方法是什么?
答案 0 :(得分:0)
你应该在这个课程中想到这个记录:
class Person {
final Object fname;
final Object lname;
final Object address;
public Person(final Object fname, final Object lname, final Object address) {
this.fname = fname;
this.lname = lname;
this.address = address;
}
}
它是不可变的,所有领域都是最终的等等。
看看这个flowchart for choosing the right Clojure type definition form。