【问题标题】:I am new in java in my code here is an error "cannot find symbol " [duplicate]我在我的代码中是 java 新手,这是一个错误“找不到符号”[重复]
【发布时间】:2016-11-13 11:38:43
【问题描述】:

我正在关注本书中的一本书,给出的代码我试图编译它,但它显示错误,这里是代码-

  class TapeDeck {
    boolean canRecord = false;

    void playTape() {
        System.out.println("tape recording");
    }

    void recording() {
        System.out.println("tape recording");
    }
}
class TapeDeckTestDrive {
    public static void main (String [] args) {
        TapeDeck t = new TapeDeck( );
        t.canRecord = true;
        t.play();

        if (t.canRecord == true) {
            t.recordTape();
        }
    }
} 

一个错误是......

    TapeDeck.java:16: error: cannot find symbol
                t.play();
                 ^
  symbol:   method play()
  location: variable t of type TapeDeck
TapeDeck.java:19: error: cannot find symbol
                        t.recordTape();
                         ^
  symbol:   method recordTape()
  location: variable t of type TapeDeck
2 errors

【问题讨论】:

  • TapeDeck 没有 playrecordTape 方法。
  • 你的函数是 playTape() 和recording()。您正在调用 play() 和 recordTape()。
  • 修复它后我有一个这样的错误..'错误:在类 TapeDeck 中找不到主要方法,请将主要方法定义为:public static void main(String[] args) 或 JavaFX应用程序类必须扩展 javafx.application.Application'
  • 只需将此消息复制并粘贴到搜索引擎中...
  • 不要更改现有问题的主题。如果你有一个新问题,那就问一个新问题。正如我已经写过的:做一些研究。新人并不是懒惰的正当借口。您的问题已被问过数百万次,所以去寻找它们并向它们学习。

标签: java compiler-errors cannot-find-symbol


【解决方案1】:

这是因为play() 不是TapeDeck 类的方法。但是,您确实有以下方法:

void playTape() {
    System.out.println("tape recording");
}

如果这是您的意思,请将t.play() 更改为t.playTape()。如果没有,则需要在TapeDeck 中创建play()

【讨论】:

  • "那么你的代码应该可以编译"这是错误的。
  • 或者更确切地说,“这个错误应该消失”
【解决方案2】:

你得到这个是因为你试图调用TapeDeck没有的方法:play()recordTape()。您所指的那本书很可能只是为了篇幅而没有展示实现。

您可以将这些方法添加到您的 TapeDeck 类中,或者将您正在调用的方法从您的 main 方法更改为您的 TapeDeck 类中已经存在的方法(playTape()recording())。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2021-07-09
    • 1970-01-01
    • 2014-03-14
    相关资源
    最近更新 更多