我的主类有2个内部类,其中1个是线程,我不知道我的内部类2如何访问(或者如何知道var1是真还是假)内部类1的值,这是我的例子,谢谢!
public class InnerClass {
public class InnerClass1 implements NativeKeyListener {
public boolean var1;
}
public class InnerClass2 implements Runnable{
@Override
public void run() {
while (true) {
var1...
}
}
}
}
答案 0 :(得分:0)
除非已实例化对象(即created an instance of the object),否则无法访问非静态变量/方法/内部类。您需要一个InnerClass1
对象才能存储或获取任何内容。在您执行InnerClass1 foo = new InnerClass1()
之类的操作之前,任何地方都没有var1
。
无论如何,我认为你在滥用内部课程。我建议你是否还没有通过Java Tutorials Trail来了解类,字段和实例化如何在Java中工作。
答案 1 :(得分:0)
您可以通过innerclass1实现的接口或类来完成。试试这个:
public interface NativeKeyListener {
boolean a();
}
public class InnerClass {
static NativeKeyListener m() {
class InnerClass1 implements NativeKeyListener {
public boolean var1;
public boolean a() {
return var1;
}
}
return new InnerClass1();
}
public class InnerClass2 implements Runnable {
public void run() {
NativeKeyListener i = InnerClass.m();
i.a();
}
}
}