与空构造函数的defrecord

时间:2014-07-25 06:30:41

标签: clojure

我在一个简单的例子中使用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构造函数的最快/最美的方法是什么?

1 个答案:

答案 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