如何引用本地 class
How to reference local class
我有一个本地 class...
public class Outer {
public void wrapper() {
class Local {
}
}
}
我有一个测试需要参考本地 class...
Outer.wrapper.Local.class ## this doesn't seem to work
如何引用本地 class?
您只能在声明它的方法中引用局部内部 class:
public void wrapper() {
class Local {
}
Local obj = new Local();
}
由于范围有限,这些 class 往往不是很有用。如果您找到了一个有效的用例来定义一个,请查看 at this tutorial.
局部Class(a.k.a。局部内部Class或方法局部内部Class):
Local class 定义为方法中的内部 class。与局部变量一样,局部内部 class 声明在方法被调用之前不存在,并且在方法 returns 时超出范围。这意味着它的实例只能从声明它的方法中创建。
这个内部class只有在它定义之后才能实例化(即实例化代码必须跟在声明之后)。内部 class 无法访问方法的局部变量,除非这些变量是最终的或实际上是最终的。
这是一个例子:
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();
}
注释:
- 唯一可以应用于方法局部内部的修饰符class
是抽象的和最终的,但绝不会同时存在。
- 在静态方法中声明的本地 class 只能访问封闭 class 的静态成员,而不能访问实例
变量。
我有一个本地 class...
public class Outer {
public void wrapper() {
class Local {
}
}
}
我有一个测试需要参考本地 class...
Outer.wrapper.Local.class ## this doesn't seem to work
如何引用本地 class?
您只能在声明它的方法中引用局部内部 class:
public void wrapper() {
class Local {
}
Local obj = new Local();
}
由于范围有限,这些 class 往往不是很有用。如果您找到了一个有效的用例来定义一个,请查看 at this tutorial.
局部Class(a.k.a。局部内部Class或方法局部内部Class):
Local class 定义为方法中的内部 class。与局部变量一样,局部内部 class 声明在方法被调用之前不存在,并且在方法 returns 时超出范围。这意味着它的实例只能从声明它的方法中创建。
这个内部class只有在它定义之后才能实例化(即实例化代码必须跟在声明之后)。内部 class 无法访问方法的局部变量,除非这些变量是最终的或实际上是最终的。
这是一个例子:
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();
}
注释:
- 唯一可以应用于方法局部内部的修饰符class 是抽象的和最终的,但绝不会同时存在。
- 在静态方法中声明的本地 class 只能访问封闭 class 的静态成员,而不能访问实例 变量。