&引用;未找到匹配的ctor";在尝试从Clojure填充Java类时

&引用;未找到匹配的ctor";在尝试从Clojure填充Java类时,java,clojure,Java,Clojure,我在尝试从Clojure填充Java类时遇到“找不到匹配的ctor”错误 import java.util.Date; public class Account { Account() { acct_num = 0; trans_type = 'U'; trans_amt = 0.00; cur_bal = 0.00; last_update = null;

我在尝试从Clojure填充Java类时遇到“找不到匹配的ctor”错误

import java.util.Date;

public class Account {
    Account() { acct_num = 0; 
                trans_type = 'U';
                trans_amt = 0.00;
                cur_bal = 0.00;
                last_update = null;
               }

    public int acct_num = 0;
    public char trans_type;
    public double trans_amt = 0.00;
    public double cur_bal = 0.00;
    public Date last_update;
}
我想从Clojure填充这个类

import java.util.Date;

public class Account {
    Account() { acct_num = 0; 
                trans_type = 'U';
                trans_amt = 0.00;
                cur_bal = 0.00;
                last_update = null;
               }

    public int acct_num = 0;
    public char trans_type;
    public double trans_amt = 0.00;
    public double cur_bal = 0.00;
    public Date last_update;
}
我可以导入该类:

ba2-app=> (ns ba2-app (:import Account))
Account
但当我去填充它时,我得到了以下错误:

ba2-app=> (:use java.util.Date)
nil
ba2-app=> (Account. 1000 \C 100.00 0.00 (java.util.Date. "12/21/2011"))
java.lang.IllegalArgumentException: No matching ctor found for class Account (NO_SOURCE_FILE:9)
我随后使用Clojure代码构建了Java类。这些建议非常有用,因为我现在可以构建Java类了


任何提示或建议都会有帮助。我知道类成员应该是私有的,但这是为了测试更大的项目。

使用公共访问修饰符将构造函数公开。此外,构造函数不接受任何参数,只是将一组成员设置为某些值。所以你现在只能这样称呼它:
(Account.)
(如果它是公共的)

当您想使用这样的构造函数时:
(Account.1000\C 100.00 0.00(java.util.Date.“12/21/2011”)
您必须添加一个接受以下类型参数的构造函数:

    public Account(int a, char c, double d1, double d2, Date date) { 
      acct_num = a; 
      trans_type = c;
      trans_amt = d1;
      cur_bal = d2;
      last_update = date;
    }

此构造函数不接受任何参数。你用很多理由来称呼它。可能您需要重新学习Java,或者从其他地方复制一些可用的Java(如果您的最终目标只是在您的项目中打包其他人的Java)。

我必须发布另一个版本,因为我注意到了,重新构建,并得到了相同的错误。我去编辑这个问题。谢谢,你的复习是对的。我在订一本书。几年前我维护了一个Java应用程序。从那以后发生了很多变化。谢谢。它与更改构造函数以填充所有字段一起公开。