java - 如何修复 Runnable 中 run 方法的编译器问题 "method does not override a method from its superclass @Override"?

标签 java multithreading concurrency runnable

我正在尝试用 Java 中的 Runnable 对象创建一个基本线程。下面是我的代码:

import java.lang.Thread;
import java.lang.Runnable;

public class TestRunnable{
    public static void main(String[] args){
        MyRunnableImplementation r = new MyRunnableImplementation();
        Thread t = new Thread(r);
        t.start();
    }
}

public class MyRunnableImplementation implements Runnable {
    @Override
    public void run() {
        System.out.println("Testing");
    }
}

但是编译器提出了一个问题: 方法不会覆盖其父类(super class)中的方法 @Override

我该如何解决这个问题?

编辑:

我还尝试了以下代码,它返回相同的问题:

public class TestRunnable implements Runnable{
    public static void main(String[] args){
        Runnable runnable = new TestRunnable();
    }

    @Override
    public void run() {
        System.out.println("Testing");
    }
}

最佳答案

两个公共(public)类不能驻留在同一个 java 源中;因此@boobalan_gnanasekaran 的回答。

Runnable 也是一个接口(interface)。在java的真正旧版本中,@Override仅允许用于方法。所以要确保java版本没问题。我建议尝试一些更现代的结构:

Optional<String> opt = Optional.empty();

如果无法编译,请更新 java 版本。

关于java - 如何修复 Runnable 中 run 方法的编译器问题 "method does not override a method from its superclass @Override"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48787144/

相关文章:

java - Android 检查电子邮件地址是否有效?

javascript - Node.js worker_threads 模块是真正的线程还是只是带有 IPC 的进程?

linux - 如果两个核心试图同时写入主存中的同一个地方会发生什么?

java - java中的Timeline和Thread有什么区别

java - 使用用户输入和迭代器从 ArrayList 中删除元素

java - 命名空间错误 : An attempt is made to create or change an object in a way which is incorrect with regard to namespaces

java - 你如何获得按钮的背景颜色?

java - 即使所有线程都完成后,应用程序也会挂起几分钟

concurrency - 寻找监视器与信号量的良好类比/示例

java - 在java中用两个线程打印HashMap的键?