所以我正在做这个模拟汽车乐器的练习。共有三个类:FuelGauge
,Odometer
和CarInstrumentSimulator
(主方法的一个)。两个第一个都有我定义的构造函数。但是每当我在main
:
public static void main(String[] args) {
CarInstrumentSimulator carInstrumentSimulator = new CarInstrumentSimulator();
FuelGauge fuel = carInstrumentSimulator.new FuelGauge();
Odometer odometer = carInstrumentSimulator.new Odometer(0, fuel);
我总是得到一个CarInstrumentSimulator.FuelGauge无法解决为eclipse中的类型错误(对于里程表也是如此),但是我得到了这行代码来自我从({{3 }}) 我对java和编码很新,所以我想知道: 1)这种语法意味着什么:
FuelGauge fuel = carInstrumentSimulator.new FuelGauge();
2)为什么这个语法有问题?
提前致谢^^
答案 0 :(得分:1)
我认为这是source中的拼写错误。试试这个:
FuelGauge fuel = new FuelGauge();
Odometer odometer = new Odometer(0, fuel);
这个问题没有明智的答案......
这种语法意味着什么:
FuelGauge fuel = carInstrumentSimulator.new FuelGauge();
...因为有问题的行是胡言乱语;)
Java对象(例如carInstrumentSimulator
)上的有效方法调用需要点表示法,方法名称以及开始和结束括号,例如carInstrumentSimulator.doSomething()
但上面的代码没有开头和右括号,使用的单词new
不是有效的Java方法名称(因为它是保留的关键字)并且遵循new
通过FuelGauge()
使整个事情无法解释。
有关Java方法构建的更多详细信息here。
如果在FuelGauge
内声明CarInstrumentSimulator
,则此语法有效:
new CarInstrumentSimulator.FuelGauge();
同样,如果CarInstrumentSimulator
公开FuelGauge
的创建者方法,则此语法有效:
carInstrumentSimulator.newFuelGauge();
但是这种语法在任何情况下都无效:carInstrumentSimulator.new FuelGauge();
。