作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Throwable
具有以下字段:
private String detailMessage;
为什么这个字段不是最终的。除了构造函数之外,它永远不会被修改。甚至除了getMessage
之外永远不会被访问。
最佳答案
在 Throwable
本身的 Java 源代码中没有明显的1原因。
可能2 Java SE 代码库中的某些代码需要能够使用反射或其他“后门”机制修改异常消息。也有可能过去有过,或者将来有过。
但是,坦率地说,为什么这样做并不重要。 您的代码不应该依赖于这个private
变量,因此它是否是final
对您来说应该没有什么区别。
1 - ...对我来说。
2 - 我在 OpenJDK 代码库中搜索了 detailMessage
的出现情况,其中一些结果与该理论一致。看看.../hotspot/src/share/vm/classfile/javaClasses.cpp
关于java - 为什么 `Throwable.detailMessage` 不是最终的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49606997/
我试图从异常中仅获取detailMessage: } catch (Exception e) { logger.error(failed + e.getCause().getMessage(
Throwable 具有以下字段: private String detailMessage; 为什么这个字段不是最终的。除了构造函数之外,它永远不会被修改。甚至除了getMessage之外永远不会被
我是一名优秀的程序员,十分优秀!