如果开发人员扩展了作为JDK一部分的Java类并为其添加了新方法,那么未来版本的Java可能会引入具有相同名称/签名的方法,从而导致程序中出现不需要的行为。使用这些未来版本执行。由于没有“非覆盖”注释可用(请参阅http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7152222)当有人使用较新版本的JDK编译代码时会检测到此类可能的问题,因此开发人员必须以不同的方式进行此检查。 你使用哪种方法?
答案 0 :(得分:13)
扩展JDK的类是反模式,除了那些专门设计用于扩展它们的类。您应该使用 Decorator 模式来向JDK类添加功能。 JDK也不是特殊情况,它也适用于任何第三方库。
答案 1 :(得分:0)
继承是一种强大的技术,但由于缺乏知识,它可能会更糟。所以在这种情况下,你必须使用组合而不是继承。创建一个包含要扩展的任何java类的对象的类,然后将类扩展到新创建的类而不是orignal类。