【发布时间】:2012-02-27 11:11:50
【问题描述】:
【问题讨论】:
-
你可以自己试试这个你知道的......还有:stackoverflow.com/questions/2428186/…
标签: java inner-classes
【问题讨论】:
标签: java inner-classes
是的,你可以。
public final class Test {
// In this method.
private void test() {
// With this local variable.
final List<String> localList = new LinkedList<String>();
// We can define a class
class InnerTest {
// Yes you can!!
void method () {
// You can even access local variables but only if they are final.
for ( String s : localList ) {
// Like this.
}
}
}
}
}
【讨论】:
是的,您可以:
public static void main(String[] args) {
class Foo implements Runnable {
@Override public void run() {
System.out.println("Hello");
}
}
Foo foo = new Foo();
}
我建议不要这样做,在其他情况下更喜欢匿名内部类,它们足够好,或者嵌套类 not 在方法内。如果您需要一个方法中的命名类,这表明您需要获取它声明的额外成员,这会变得混乱。将其分离到自己的嵌套类中(理想情况下将其设为静态,以消除一堆极端情况)通常会使代码更清晰。
【讨论】:
是的,它被称为 本地内部类 - 您可以通过在网络搜索中使用该术语来找到示例。
【讨论】:
是的,它被称为本地类:Java Language Specification
【讨论】: