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

前端之家收集整理的这篇文章主要介绍了Java的.当地的课程是否有任何理由不让它最终?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个关于 Java中的本地类的问题(在方法中声明的类或以{}为边界的块).

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

谢谢!

解决方法

人们似乎对匿名类和本地类有点困惑.这是一个本地课程:
public void m() {
   class MyClass{}
   MyClass cl = new MyClass();
}

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

public void m() {
   class MyClass{}
   MyClass cl = new MyClass();
   class MyOtherClass extends MyClass{}
   MyOtherClass cl2 = new MyOtherClass();
}

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

原文链接:https://www.f2er.com/java/128377.html

猜你在找的Java相关文章