首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试从Clojure填充Java类时,“找不到匹配的ctor”

尝试从Clojure填充Java类时,“找不到匹配的ctor”
EN

Stack Overflow用户
提问于 2011-12-22 04:45:38
回答 2查看 10K关注 0票数 9

当我试图从Clojure填充Java类时,我得到了一个“没有找到匹配的ctor”错误。

我想从Clojure填充这个类。

代码语言:javascript
复制
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;
}

我可以导入这个类:

代码语言:javascript
复制
ba2-app=> (ns ba2-app (:import Account))
Account

但是当我去填充它的时候,我得到了这个错误:

代码语言:javascript
复制
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)

我遵循了these suggestions,用我的Clojure代码构建了Java类。这些建议非常有用,因为我现在可以构建Java类了。

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

EN

Stack Overflow用户

回答已采纳

发布于 2011-12-22 04:55:12

使用public access修饰符使构造函数成为公共的。此外,您的构造函数不接受任何参数,而只是将一堆成员设置为一些值。因此,您现在实际上只能这样调用它:(Account.) (如果它是公共的)。

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

代码语言:javascript
复制
    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;
    }
票数 13
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8596122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档