开发者社区> 问答> 正文

java类中有有参构造,没有无参构造

public final class Schedule {
private final Date start;
private final Date end;
public Schedule(Date start, Date end) {
    if (start.compareTo(end) > 0)
        throw new IllegalArgumentException(start + " after " + end);
    this.start = start;
    this.end = end;
}

public Date getStart() {
    return start;
}

public Date getEnd() {
    return end;
}
}

类中有有参构造,应该手动添加无参构造,可添加后报错,不添加反而正常,求大神解释下为什么?

展开
收起
蛮大人123 2016-06-07 14:30:43 3206 0
3 条回答
写回答
取消 提交回答
  • 开发
    如果显示声明了有参构造器,java编译器默认生成的无参构造器就不会再自动添加。 这时需要显式的添加有残构造器。
    2019-07-17 19:30:04
    赞同 展开评论 打赏
  • 无参构造方法是默认就有的,但一旦重写了构造方法,则无参的就不起作用了。
    2019-07-17 19:30:04
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    因为你设置两个final的Date,又没有初始化它们.
    当你提供了一个无参的构造函数,又没有初始化时,编译器就会报错.
    比如改成这样

    public Schedule(){
    start = new Date();
    end = new Date();
    }
    2019-07-17 19:30:04
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载