gpt4 book ai didi

java 。本地类(class)有什么理由不让它成为 final类吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:28:40 25 4
gpt4 key购买 nike

我对 Java 中的本地类有疑问(在方法中或在 { } 限定的 block 中声明的类)。

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

谢谢!

最佳答案

人们似乎对匿名类和本地类有点混淆。这是本地类:

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

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

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

据我所知,匿名 类不被视为最终类。但是,从语法上讲,没有办法从它们继承,因此需要强大的类文件 hack 才能做到这一点。

关于 java 。本地类(class)有什么理由不让它成为 final类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com