【问题标题】:How to pass an argument in the run method while doing multi-Threading in Java [duplicate]在Java中进行多线程时如何在run方法中传递参数[重复]
【发布时间】:2020-03-27 13:19:42
【问题描述】:

我正在通过 Runnable 接口学习使用多线程。

这就是我尝试的方式

public class ExampleClass implements Runnable {


public static void main(String[] args) 
    { 
           Thread object = new Thread(new ExampleClass()); 
           object.start(); 
    } 
public void run(String[] args){
System.out.println("ExampleClass running");
   } 
}

但是这不起作用,因为我的假设是 start 方法调用 run() 但是因为我在上面的示例中将该方法作为 run(String) ,所以它不起作用。程序编译后退出。

请你告诉我我做错了什么?

【问题讨论】:

  • 程序编译了吗?不是说它缺少无参数run() 方法吗?
  • 它为你编译真的很奇怪。我在尝试编译时遇到此错误:com.company.ExampleClass 不是抽象的,并且不会覆盖 java.lang.Runnable 中的抽象方法 run()
  • @Amongalen - 你需要添加未实现的方法,你应该看到编译错误旁边的建议

标签: java multithreading


【解决方案1】:

你可以在ExampleClass的构造函数中传递参数。

public class ExampleClass implements Runnable {

    private String[] args;

    public ExampleClass(String[] args) {
        this.args = args;
    }

    public static void main(String[] args) {
        Thread object = new Thread(new ExampleClass(args));
        object.start();
    }

    @Override
    public void run() {
        System.out.println("ExampleClass running, args: " + Arrays.toString(args));
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    相关资源
    最近更新 更多