Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中执行多线程时如何在run方法中传递参数_Java_Multithreading - Fatal编程技术网

在Java中执行多线程时如何在run方法中传递参数

在Java中执行多线程时如何在run方法中传递参数,java,multithreading,Java,Multithreading,我正在学习使用Runnable接口来使用多线程 这就是我试图做到的 public class ExampleClass implements Runnable { public static void main(String[] args) { Thread object = new Thread(new ExampleClass()); object.start(); } public void run(String[]

我正在学习使用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)使用,所以它不起作用。程序编译后就退出了


你能告诉我哪里做错了吗?

你可以在
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));
    }
}

您可以在
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));
    }
}

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