【问题标题】:Eclipse error : cannot be resolved to a typeEclipse 错误:无法解析为类型
【发布时间】:2017-12-31 05:39:39
【问题描述】:

所以我在做这个模拟汽车乐器的练习。共有三个类:FuelGaugeOdometerCarInstrumentSimulator(带有 main 方法的一类)。前两个每个都有一个我定义的构造函数。但是,每当我在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 中的类型错误(里程计也是如此),但是我从我得到练习的网站中详细说明的更正中得到了这行代码(https://www.leveluplunch.com/java/exercises/car-instrument-simulator/ ) 我对java和一般编码很陌生,所以我想知道: 1)这个语法是什么意思:

    FuelGauge fuel = carInstrumentSimulator.new FuelGauge();

2) 为什么这个语法有问题?

提前致谢^^

【问题讨论】:

  • 您为什么将其标记为“Eclipse 错误”?这与 Eclipse 无关,而与糟糕的 Java 语法有关。您是否出于某种原因嵌套类?如果是这样,请不要——每个类都应该放入自己的文件中。请发布更多相关代码。

标签: java eclipse syntax constructor


【解决方案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

如果FuelGaugeCarInstrumentSimulator 中声明,则此语法有效:

new CarInstrumentSimulator.FuelGauge(); 

同样,如果CarInstrumentSimulator 公开了FuelGauge 的创建者方法,那么此语法将是有效的:

carInstrumentSimulator.newFuelGauge();

但这种语法在任何情况下都无效:carInstrumentSimulator.new FuelGauge();

【讨论】:

  • 谢谢:D,但我认为写这个“更正”的人想从 CarInstrumentSimulator 创建一个对象,并且该对象将包含由 FuelGauge 和 Odometer 类构造函数初始化的特征,这就是为什么我认为有某种类型这样做的语法,我仍然想知道 ^^
  • 我已经更新了答案,试图解决您的最后评论。希望对您有所帮助。
  • 好的,非常感谢 :) 最后一个问题:究竟什么是创建者方法?
  • 术语“创建者方法”不是一个正式的术语,它只是表示“一个创建对象的方法”,而不是像这样使用构造函数:new Foo(),你可以调用一个方法@ 987654338@ 在内部只调用new Foo()。您可以搜索有关“工厂模式”和“构建器模式”的详细信息,以便为您提供更多背景信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-28
  • 2021-01-26
相关资源
最近更新 更多