答案 0 :(得分:8)
是的,你可以:
public static void main(String[] args) {
class Foo implements Runnable {
@Override public void run() {
System.out.println("Hello");
}
}
Foo foo = new Foo();
}
我会建议不要这样做,在其他情况下,更喜欢匿名的内部类,它们是足够好的,或者在方法中嵌套类不是。如果你需要一个方法中的命名类,这表明你需要获得它声明的额外成员,这将变得混乱。将它分成它自己的嵌套类(理想情况下使它成为静态,删除一堆极端情况)通常会使代码更清晰。
答案 1 :(得分:8)
是的,你可以。
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.
}
}
}
}
}
答案 2 :(得分:0)
是的,它被称为本地内部课程 - 您可以在网络搜索中使用此术语找到示例。
答案 3 :(得分:0)
是的,它被称为本地课程:Java Language Specification