内部类在Java中常用吗?他们是“坏”吗?[已关闭]

2022-09-01 16:36:42

内部类在Java中常用吗?这些类与嵌套类相同吗?或者这些在Java中被更好的东西取代了?我有一本关于版本5的书,它有一个使用内部类的例子,但我认为我读过一些关于内部类是“坏”的。

我不知道,并希望对此有所了解。

谢谢。


答案 1

内部类经常被使用,并且非常相似的东西 - 匿名类 - 实际上是不可或缺的,因为它们是Java最接近闭包的东西。因此,如果您不记得在哪里听说过内部课程不好,请尝试忘记它!


答案 2

他们本身并不“坏”。

它们可能受到滥用(例如,内部类的内部类)。一旦我的内部类跨越了几行,我更喜欢将其提取到它自己的类中。它有助于可读性,并在某些情况下进行测试。

有一个问题不是很明显,值得记住。任何非内部类都将具有对周围外部类的隐式引用(隐式“this”引用)。这通常不是一个问题,但是如果你来序列化内部类(比如说,使用XStream),你会发现这可能会导致你意想不到的悲伤。static


推荐