不兼容的类型,不能转换为int

时间:2017-03-08 16:36:25

标签: java types

任何人都可以看到为什么我收到错误“不兼容的类型,NumberDisplay无法转换为int”

原始项目没有包括秒,所以我想添加它,但是当我尝试时,我得到了错误。

我试过改变价值观,没有帮助。

myhiddenfield

1 个答案:

答案 0 :(得分:4)

在这个方法中

public ClockDisplay(int hour, int minute, int seconds)
                                              ^^^^^^^
{
    hours = new NumberDisplay(24);
    minutes = new NumberDisplay(60);
    seconds = new NumberDisplay(60);
    ^^^^^^^
    setTime(hour, minute);
}

该行

    seconds = new NumberDisplay(60);

正在尝试将NumberDisplay分配给seconds,其本地是参数变量并且是int。你应该把它改成

    this.hours = new NumberDisplay(24);
    this.minutes = new NumberDisplay(60);
    this.seconds = new NumberDisplay(60);

一般情况下,在构造函数或setter中将参数命名为与成员变量相同是正常的,但是您应该养成在赋值左侧始终使用this.的习惯,以避免这个问题