5

如果开发人员扩展了作为 JDK 一部分的 Java 类并向其添加新方法,则始终存在未来版本的 Java 可能会引入具有相同名称/签名的方法的风险,如果程序使用这些未来的版本。由于没有可用的“Non-Overrides”注释(请参阅http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7152222),当有人使用较新版本的JDK,开发人员必须以不同的方式进行此检查。您使用哪种方法?

4

2 回答 2

13

扩展 JDK 的类是一种反模式,除了那些专门设计为通过扩展它们来使用的类。您应该改用装饰器模式向 JDK 类添加功能。JDK 也不是特例,这也适用于任何 3rd 方库。

于 2013-04-29T11:32:07.880 回答
0

继承是一种强大的技术,但由于缺乏知识,它可能会更糟。所以在这种情况下,你必须使用组合而不是继承。创建一个包含您要扩展的任何 java 类的对象的类,然后将您的类扩展到该新创建的类而不是原始类。

于 2013-04-29T11:36:33.370 回答