【发布时间】:2016-08-10 07:18:27
【问题描述】:
在 Swift 中,您可以创建现有类的扩展,以便在需要时向现有类添加其他功能。这也有助于避免创建现有类的子类。
我只是想知道Java中是否存在类似的功能?还是向现有 Java 类添加其他方法的唯一方法是创建现有类的子类?
【问题讨论】:
-
不是在 Java 中。然而,并不是每个人都对 Scala 中的这个说法感到满意。因为它会妨碍可读性和可维护性。通常人们会创建一个带有函数的类,比如 XxxUtils 或 Xxxs。继承有其自身的问题(最终类,旧代码的强制过时,集中 = 只是一个扩展点)。
-
Manifold 为 Java 提供全面、无缝的 C# 风格的扩展方法 支持,允许您向不受控制的类添加方法,例如,
java.lang.String。演示:http://manifold.systems/images/ExtensionMethod.mp4
标签: java subclass extension-methods