【问题标题】:what's the benefit of defining some class inside a method?在方法中定义一些类有什么好处?
【发布时间】:2012-06-09 10:10:37
【问题描述】:

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

【问题讨论】:

标签: java


【解决方案1】:

我认为您的意思是匿名内部类本地内部类。见this article for the differences and the advantages 在我看来,最大的好处是代码在使用的地方,而不是在另一个文件中。

【讨论】:

    【解决方案2】:

    这样做有两个原因:

    • 逻辑局部性。代码中逻辑上紧密相关的部分分散开来会让人更难理解。
    • 当您在方法内定义一个类时,它closes in 覆盖范围内可用的局部变量。这样可以避免不必要的参数传递。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 2012-04-28
      • 1970-01-01
      • 2019-02-02
      • 2013-05-15
      相关资源
      最近更新 更多