我有一个MainActivity类,在其中定义了一个InnerClass。我想拥有一个此InnerClass的常量并使它静态以将其传递到其他类,但是它似乎不起作用...
这里是我的问题的草图:
public class MainActivity {
final public static InnerClass in = new InnerClass();
public class InnerClass {
}
}
我收到错误:
'com.aydinabiar.rubikscubeprototype.MainActivity.this' cannot be referenced from a static context
有人可以向我解释错误以及如何解决吗?
public class InnerClass {
}
具有对创建它的外部类的实例的隐式引用:
public class InnerClass {
private final MainActivity this$0;
InnerClass(MainActivity this$0) {
this.this$0 = this$0;
}
}
[如果不存在MainActivity
的实例,则无法创建此类的实例,因此无法在MainActivity
的静态上下文中创建它。
最简单的解决方案是使InnerClass
static
(尽管它不再是内部类,而只是嵌套类)。