3

在方法中定义一个类有什么好处。我看到有人喜欢在方法中定义一些监听器类,这样做有什么真正的好处吗?

4

3 回答 3

5

我认为您的意思是匿名内部类本地内部类。看到这篇文章的区别和优点在我看来,最大的优点是代码在使用它的地方,而不是在另一个文件中。

于 2012-06-09T10:17:15.340 回答
3

这样做有两个原因:

  • 逻辑的局部性。分散逻辑和紧密相关的代码部分使其更难遵循。
  • 当您在方法中定义一个类时,它会关闭范围内可用的局部变量。这种方式避免了不必要的参数传递。
于 2012-06-09T10:33:17.547 回答
1

它被命名为 InnerClass,这允许您实例化实现接口或抽象类的对象,而无需将其正式定义为单独的类。监听器是很好的例子,因为支持一个将每个监听器都实现为一个单独的类的系统成本太高。

一个很好的参考:http ://docs.oracle.com/javase/tutorial/java/javaOO/nested.html (内部类主题)

于 2012-06-09T10:17:52.940 回答