Java的.当地的课程是否有任何理由不让它成为最终的?

Fin*_*sky 7 java local-class

我有一个问题,局部类的Java(即在方法或所界定块声明类{}).

有没有理由不宣布本地课程为最终?我们不能从本地类继承其他类(如果它没有在同一范围内定义),但是当我们将它声明为final时,编译器可以使代码更简单吗?

谢谢!

Mat*_*arz 6

人们似乎对匿名课程和本地课程有点困惑.这是一个本地课程:

public void m() {
   class MyClass{}
   MyClass cl = new MyClass();
}
Run Code Online (Sandbox Code Playgroud)

可以声明MyClassfinal,但它实际上可以从它继承,因此Java中的任何其他地方都可以声明它是最终的以避免这种情况:

public void m() {
   class MyClass{}
   MyClass cl = new MyClass();
   class MyOtherClass extends MyClass{}
   MyOtherClass cl2 = new MyOtherClass();
}
Run Code Online (Sandbox Code Playgroud)

据我所知,匿名课程不被视为最终课程.但是,从语法上讲,没有办法从它们继承,所以它需要一个强大的类文件hack才能这样做.