如何参考当地课程

时间:2018-08-23 14:46:45

标签: java local-class

我有一个本地课程...

public class Outer {
    public void wrapper() {
        class Local {
        }
    }
}

我有一个需要引用本地类的测试...

Outer.wrapper.Local.class ## this doesn't seem to work

如何引用本地课程?

2 个答案:

答案 0 :(得分:3)

您只能在声明它的方法内引用Local Inner类:

public void wrapper() {
  class Local {

  }
  Local obj = new Local();
}

由于此类类的范围有限,此类类往往不是很有用。如果您找到了一个定义用例的有效用例,请查看at this tutorial

答案 1 :(得分:0)

本地类(又称本地内部类或方法本地内部类):

本地类被定义为方法中的内部类。与局部变量一样,局部内部类声明在调用方法之前不存在,并且在方法返回时超出范围。这意味着只能在声明其的方法内创建其实例。

此内部类只能在定义后进行实例化(即,实例化代码必须在声明之后)。除非这些变量是最终变量或实际上是最终变量,否则内部类无法访问该方法的局部变量。

这里是一个例子:

int length = 10; // outer class's instance variable

public void calculate() {
    final int width = 20;
    class Inner { // inner class definition
        public void area() {
            System.out.println(length * width);
        }
    }
    Inner local = new Inner(); // this statement comes only after local class's definition
    local.area();
}

注释:

  • 唯一可应用于方法局部内部类的修饰符 是抽象和最终的,但绝不能同时出现。
  • 在静态方法中声明的本地类只能访问封闭类的静态成员,而不能访问实例 变量。