我正在尝试找到获取重量级AWT面板支撑窗口的X ID代码的最佳方法。为什么java.awt.Component.getPeer命令被列为不推荐使用?是否涉及安全问题?
答案 0 :(得分:2)
javadoc声明:
从JDK 1.1版开始,程序不应直接操纵同行;由
boolean isDisplayable()
替换。
这是设计问题而非安全问题。
事实上,从Java 9开始,getPeer()
方法已被删除。因此,如果您想要一个强有力的理由不使用getPeer()
,那么因为您的代码在使用Java 9时无法使用它!
如果你确实需要访问Java 9中的对等体,可以使用反射来访问package-private peer
变量。但是,使用反射进入AWT实现的风险是您的代码可能会在将来的版本中(再次)中断。