首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何避免Java中的构造器代码冗余?

如何避免Java中的构造器代码冗余?
EN

Stack Overflow用户
提问于 2018-03-20 05:18:03
回答 2查看 0关注 0票数 0

我有以下课程:

代码语言:javascript
复制
class Pair
{
    String car;
    Integer cdr;

    public Pair () {}
    public Pair (String car) { this.car = car; }
    public Pair (Integer cdr) { this.cdr = cdr; }

    public Pair (String car, Integer cdr)
    {
        this(car);
        this(cdr);
    }
}

该类包含两个可选值,我想提供所有可能的构造函数排列。第一个版本不初始化任何东西,第二个版本只初始化第一个值,第三个初始化第二个值。

最后一个构造函数是第二个和第三个的组合。但是不可能写下来,因为代码失败。

代码语言:javascript
复制
constructor.java:13: call to this must be first statement in constructor
        this(cdr);
            ^
1 error

是否有可能写没有任何代码冗余的最后一个构造函数(也没有调用相同的setter方法)?

EN

Stack Overflow用户

发布于 2018-03-20 13:33:39

通常,参数较少的构造函数应该使用更多的参数。

代码语言:javascript
复制
public Pair() {}
public Pair(String car) { this(car, null); }
public Pair(Integer cdr) { this(null, cdr); }
public Pair(String car, Integer cdr) { this.car = car; this.cdr = cdr; }
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007687

复制
相关文章

相似问题

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