我今天看了一些代码。我发现了这样的事情:
public class SomeClass
{
...
final private class SomeHandler implements Blahblah
{
...
}
}
由于没有人能够从外部访问SomeHandler
,我无法理解为什么我们应该final
。有没有人有不同的见解?
答案 0 :(得分:2)
将某个类声明为final
有两个相关但不同的目的。
它告诉编译器“不允许扩展此类”。这主要是为了防止错误。
它告诉读者“不要担心这个课程可能会延长”。这是为了帮助理解。
在private final
内部类的情况下,我们可以假设一个人编写或修改了类,并且在理解了设计之后他们就这样做了。因此,某人错误地扩展不应该扩展的类(按设计)的可能性很小。
然而,有人在阅读需要知道的代码时,private
内部类可能已被扩展,需要扫描整个Java源文件......除非已经声明了类final
。< / p>
因此final
可以起到一个有用的作用......在设计清单中提高可读性。
另一方面,您找到的示例中的final
可以添加而没有任何特定意图;即它可能只是“多余”。