祝大家有美好的一天!我开始深入研究类的类型并编写包含该类的代码。该类包含一个方法
main()
和一个静态嵌套类。静态嵌套类包含一个方法。该方法创建一个本地类。本地类有一个创建框架类的匿名类的方法(我强烈怀疑这种变态在编程实践中发生,但出于纯粹的体育兴趣,我决定聪明一点,所以请不要扔石头。无论如何,在时间之前)。简化后看起来像这样:
class Outer { // ОБРАМЛЯЮЩИЙ КЛАСС
static class Inner { // СТАТИЧЕСКИЙ ВЛОЖЕННЫЙ КЛАСС
int doInnerThings() { // ЛОКАЛЬНЫЙ МЕТОД ВНУТРЕННЕГО КЛАССА
class LocalInner { // ВНУТРЕННИЙ ЛОКАЛЬНЫЙ КЛАСС
int doLocalInnerThings() { // МЕТОД ЛОКАЛЬНОГО КЛАССА
new Outer(5) {}; // ВНУТРЕННИЙ ЛОКАЛЬНЫЙ АНОНИМНЫЙ КЛАСС
}
}
}
}
}
目标:使用框架超类在匿名类中创建一个变量,并将该变量的参数一直“扔”到内部类,分别将其分配给内部类变量。下面是一个稍微扩展的代码,带有我的草图。
class Outer { // ОБРАМЛЯЮЩИЙ КЛАСС
int outerValue = 0;
Outer(int a)
{
this.outerValue = a*a;
}
int getValue() {
return outerValue;
}
static class Inner { // ВНУТРЕННИЙ СТАТИЧЕСКИЙ КЛАСС
public int innerValue = doInnerThings();
int doInnerThings() {
final int innerValue = 0; // КАК ПЕРЕДАТЬ ЗНАЧЕНИЕ ЭТОЙ ПЕРЕМЕННОЙ ИЗ КЛАССА НИЖЕ?
class LocalInner { // ЛОКАЛЬНЫЙ КЛАСС
final public int localInnerValue;
LocalInner() {
localInnerValue = doLocalInnerThings();
}
int doLocalInnerThings() {
final int[] localInnerAnonValue = {0};
new Outer(5) { // АНОНИМНЫЙ КЛАСС
@Override
int getValue()
{
localInnerAnonValue[0] = super.getValue();
return localInnerAnonValue[0];
}
};
return localInnerAnonValue[0];
}
int getlocalInnerValue() {
return this.localInnerValue;
}
}
return innerValue;
}
}
public static void main(String[] args) {
Outer.Inner test = new Outer.Inner();
System.out.println(test.innerValue);
}
}
问题:方法int doInnerThings()
我无法将本地类中的innerValue
变量“的值分配给该方法的变量。我很乐意提供帮助!:) localInnerValue
LocalInner
GO TO FULL VERSION