尝试从Clojure填充Java类时,我收到"找不到匹配的ctor"错误.
我想从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;
}
Run Code Online (Sandbox Code Playgroud)
我可以导入这个类:
ba2-app=> (ns ba2-app (:import Account))
Account
Run Code Online (Sandbox Code Playgroud)
但是当我去填充它时,我收到这个错误:
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)
Run Code Online (Sandbox Code Playgroud)
我遵循这些建议来使用我的Clojure代码构建Java类.这些建议非常有用,因为我现在可以构建Java类了.
任何指针或建议都会有所帮助.我知道班级成员应该是私人的,但这是为了测试一个更大的项目.
Mic*_*ent 10
使用公共访问修饰符使构造函数公开.你的构造函数也不接受任何 args,只是将一堆成员设置为某些值.所以你现在实际上只能称之为:( (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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9192 次 |
| 最近记录: |