作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将枚举作为按预序遍历树结构的指南(迭代器使用这些枚举常量来决定如何遍历树):
/**
* The result type of an {@link IVisitor} implementation.
*
* @author Johannes Lichtenberger, University of Konstanz
*/
public enum EVisitResult {
/** Continue without visiting the siblings of this node. */
SKIPSIBLINGS,
/** Continue without visiting the descendants of this node. */
SKIPSUBTREE,
/** Continue traversal. */
CONTINUE,
/** Terminate traversal. */
TERMINATE,
/** Pop from the right sibling stack. */
SKIPSUBTREEPOPSTACK
}
但是,最后一个枚举常量仅用于内部访问者,并且不应由使用公共(public) API 的用户使用。有什么想法可以隐藏“SKIPSUBTREEPOPSTACK”吗?
最佳答案
您所能做的就是记录不应使用它。
另一种方法是使用接口(interface)
public interface EVisitResult {
}
public enum PublicEVisitResult implements EVisitResult {
/** Continue without visiting the siblings of this node. */
SKIPSIBLINGS,
/** Continue without visiting the descendants of this node. */
SKIPSUBTREE,
/** Continue traversal. */
CONTINUE,
/** Terminate traversal. */
TERMINATE,
}
enum LocalEVisitResult implements EVisitResult {
/** Pop from the right sibling stack. */
SKIPSUBTREEPOPSTACK
}
关于java - 隐藏枚举常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12677790/
我是一名优秀的程序员,十分优秀!