[英]Can java.awt.Component.getBounds() be null?
我找不到规格或通过搜索找到答案。 有人看到这个为空吗? 我可以使用属性而不检查null吗?
getBounds()返回一个Rectangle对象。 据我所知,当您创建一个Component时,会创建一个Rectangle对象,因此该方法不会返回null。
这是因为当您创建一个组件(按钮,复选框,滚动条等)时,此类对象将始终具有Rectangle对象形式的边界。
如果您正在谈论当前的AWT的Oracle / OpenJDK实现,那么Component.getBounds()
不能返回null,因为它总是创建一个新的Rectangle
对象。 源代码在这里 。
标准的AWT类都没有覆盖方法(据我所知)。
从理论上讲,有人可以继承AWT组件类并重写getBounds()
以返回null
,但这将是……不正确的。
我的建议是假设它不是非空的,并将任何(假设的)NPE视为错误。
我不同意您应该在所有可能的地方都防范NPE的理论。 最好让它们发生并修复它们。 不利的一面是,只有在状态值具有明确含义的情况下,才应将其设置为null
。 避免将事物作为“优化”可以为空或因为忘记初始化它们而导致的情况。 并编写良好的单元测试,以便您尽早发现错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.