首页 > 解决方案 > 为什么 java.util.Stack 未标记为已弃用?

问题描述

对陈旧的类有很多批评,java.util.Stack比如这个,说应该避免它,因为它不太安全,速度也不快。我可以理解出于兼容性原因将其保留在 rt.jar 中(即使我们将永远保留它),但为什么不将其标记为已弃用?

人们被班级名称所欺骗并到处使用它。如果他们能在编译时看到他们使用的类已过时的警告,那就更好了。

标签: javastackdeprecation-warning

解决方案


根据 Java SE 14 的java.util.Stack的 Javadoc 类文档确实带有以下指南:

Deque 接口及其实现提供了一组更完整和一致的 LIFO 堆栈操作,应优先使用此类。例如:

  Deque<Integer> stack = new ArrayDeque<Integer>();

推荐阅读