Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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 在内部类中找不到方法_Java - Fatal编程技术网

Java 在内部类中找不到方法

Java 在内部类中找不到方法,java,Java,我的代码: public class MyPanel extends JPanel { private Thread spawnRnn = new Thread(new SpawnRnn()); public MyPanel() { spawnRnn.start(); } public class SpawnRnn implements Runnable { public void loadData() {} public void r

我的代码:

 public class MyPanel extends JPanel {
   private Thread spawnRnn = new Thread(new SpawnRnn());

   public MyPanel() {
     spawnRnn.start();
   }

   public class SpawnRnn implements Runnable {
     public void loadData() {}
     public void run() {}
   }
   public class MainRnn implements Runnable {
     public void run() {
       spawnRnn.loadData(); //<--cannot find symbol. symbol: method loadData()
                            //location: variable spawnRnn of type Thread
     }
   }
}
公共类MyPanel扩展了JPanel{
私有线程spawrnn=新线程(new spawrnn());
公共事务委员会(){
spawrnn.start();
}
公共类spawrnn实现可运行{
public void loadData(){}
public void run(){}
}
公共类mairnn实现可运行{
公开募捐{

spawnRnn.loadData();//这很简单。“spawnRnn”的类型是“线程”,而不是“spawnRnn”

这很简单。“spawnRnn”的类型是“线程”,而不是“spawnRnn”

正如编译器所说,
spawrnn
属于
Thread
类型,而不是
spawrnn
类型……它没有
loadData
方法。您可能想要这样的东西:

public class MyPanel extends JPanel {
   private final Thread thread;
   private final SpawnRnn spawnRnn;

   public MyPanel() {
      spawnRnn = new SpawnRnn();
      thread = new Thread(spawnRnn);
      thread.start();
   }

   public class SpawnRnn implements Runnable {
     public void loadData() {}
     public void run() {}
   }

   public class MainRnn implements Runnable {
     public void run() {
       spawnRnn.loadData();
     }
   }
}
通过这种方式,您可以访问用于创建线程的
spawrnn
实例。不清楚您是否确实需要
thread
变量,或者是否可以在构造函数中使用局部变量


(同时,我将变量设置为final,因为当您可以这样做时,它会使代码更容易推理。)

正如编译器所说,
spawrnn
是类型
Thread
,而不是类型
spawrnn
。它没有
loadData
方法。您可能想要这样的东西:

public class MyPanel extends JPanel {
   private final Thread thread;
   private final SpawnRnn spawnRnn;

   public MyPanel() {
      spawnRnn = new SpawnRnn();
      thread = new Thread(spawnRnn);
      thread.start();
   }

   public class SpawnRnn implements Runnable {
     public void loadData() {}
     public void run() {}
   }

   public class MainRnn implements Runnable {
     public void run() {
       spawnRnn.loadData();
     }
   }
}
通过这种方式,您可以访问用于创建线程的
spawrnn
实例。不清楚您是否确实需要
thread
变量,或者是否可以在构造函数中使用局部变量


(另外,我将变量设置为final,因为当您可以这样做时,它使代码更容易推理。)

问题是,spawnRnn的类型为Thread而不是spawnRnn。

问题是,spawnRnn的类型为Thread而不是spawnRnn。

我也尝试过这样做:private Runnable spawnRnn=new spawRNN()而且SOESN也不起作用。只是显示了另一个错误编辑:啊,它应该是不可运行的…我的mistake@user2080377:同样,在这种情况下,
spawrnn
不会有一个名为
loadData
-只是
run()
。我还尝试了这样做:private Runnable spawrnn=new spawrnn()而且SOESN也不起作用。只是显示了另一个错误编辑:啊,它应该是不可运行的…我的mistake@user2080377:同样,在这种情况下,
spawrnn
不会有名为
loadData
的成员-只要
run()