代码之家  ›  专栏  ›  技术社区  ›  Saher Ahwal

如果在Java中使用不推荐的方法/函数,会出现什么问题?

  •  10
  • Saher Ahwal  · 技术社区  · 14 年前

    使用Java中的弃权功能是否会出现问题?如果是这样,为什么他们要保持这个功能?如果在Java中使用不推荐的方法,这是一种坏习惯吗? java.sql.Date.getMonth getYear getDate ????

    6 回复  |  直到 11 年前
        1
  •  9
  •   Community pid    7 年前

    一些潜在的问题是:

    • 方法可能不再存在(这在实践中从来都不是这样的,但是根据官方定义,不推荐的方法可以从未来的Java中消除)。
    • 由于不推荐使用的方法(例如 System.runFinalizersOnExit 它邪恶的双胞胎 Runtime.runFinalizersOnExit )
    • 由于固有的不安全弃用方法(例如 Thread.stop )

    工具书类

    相关问题

        2
  •  3
  •   Thorbjørn Ravn Andersen    14 年前

    实际上尚未删除任何方法,因此现有代码将继续运行。Sun一直非常注重向后兼容。

    主要的好处是远离那些由于某种原因被发现工作不理想的代码,并且通常在运行库的其他地方有一个替换。因此,使用它们是一个坏习惯,每当编译器标记出一个拒绝时,您应该注意并使用推荐的替换。一般来说,消除编译器警告是一个好主意。

    您可以看到JavaDocs中弃用的内容的列表。Java 5列表位于 http://download.oracle.com/javase/1.5.0/docs/api/deprecated-list.html

        3
  •  2
  •   BenMorel Manish Pradhan    11 年前

    保留未使用的方法,以便为以前版本的Java编写的代码仍然起作用。如果他们刚刚删除代码,那么当您将Java更新为新版本时,以前运行的代码将停止工作。

    使用不推荐使用的函数不会导致任何问题,除了这些问题之外,还会导致方法不推荐使用。但是,最好找出替换已弃用方法的内容。不推荐使用的功能将被新类中可能找到的新功能替换。许多不推荐使用的日期功能已移至日历。检查JavaDoc中的以查看建议的替换。

        4
  •  1
  •   George Lambert    14 年前

    代码将来可能会中断…

    不推荐使用的函数是此函数将消失的警告。

    现在找其他方法来解决问题,否则你会 以后再破译代码。

        5
  •  1
  •   musiKk    14 年前

    不推荐使用的类或方法可能在将来的版本中被删除。孙中山有贬低东西的习惯,而且从来没有真正去除它,在我看来,这不是很好,因为它使使用贬低的方法看起来是可以的。不过,在可能的情况下,您不应该使用不推荐使用的方法(而且应该始终可以使用)。这尤其适用于外部库,imho通常不会像sun那样害怕删除不推荐使用的代码。

        6
  •  1
  •   Thilo    14 年前

    正如其他人所指出的,Sun从未从JDK中删除任何不推荐使用的方法,但第三方库中不推荐使用的方法也并非如此。这些有时会消失(例如,Lucene项目在这里有一个相当“流体”的API,用主要版本进行主要的清理)。

    即使在JDK中,被否决的方法也意味着“现在有更好的方法可以做到这一点”,并且您可能应该更新代码以使用新版本。

    不推荐使用的方法很少不能正确地执行其最初打算执行的操作,但是替换方法通常会更可靠地工作,或者在更大的情况下工作,或者以更一般的方式工作。这里的好例子是您提到的日期函数(不推荐使用,因为它们在不同的区域设置/日历中不能很好地工作),或者只使用7位ASCII的字符串到字节转换。如果没有新的接口,或者有人可能依赖于“中断的”实现,这些警告/限制就无法修复,因此,他们不更新方法,而是取消对方法的预测,并提供替代方法。