Java 为什么'Throwable.detailMessage'不是最终的?

Java 为什么'Throwable.detailMessage'不是最终的?,java,Java,Throwable具有以下字段: private String detailMessage; 为什么这个领域不是最终的。除了构造函数之外,它不能被修改。除了getMessage之外,即使不能访问,在Throwable本身的Java源代码中也没有明显的原因 Java SE代码库中可能有一些代码需要能够使用反射或其他“后门”机制修改异常消息。也有可能过去有,或者将来会有 但是,坦率地说,为什么这样做并不重要。您的代码不应该依赖于这个私有变量,因此它是否为最终对您来说应该没有区别 1-。。。对我来

Throwable
具有以下字段:

private String detailMessage;
为什么这个领域不是最终的。除了构造函数之外,它不能被修改。除了
getMessage

之外,即使不能访问,在
Throwable
本身的Java源代码中也没有明显的原因

Java SE代码库中可能有一些代码需要能够使用反射或其他“后门”机制修改异常消息。也有可能过去有,或者将来会有

但是,坦率地说,为什么这样做并不重要。您的代码不应该依赖于这个
私有
变量,因此它是否为
最终
对您来说应该没有区别


1-。。。对我来说

2-我在OpenJDK代码库中搜索了出现的
detailMessage
,其中一些命中与这个理论是一致的。查看
../hotspot/src/share/vm/classfile/javaClasses.cpp

可丢弃的
本身的Java源代码中没有明显的原因

Java SE代码库中可能有一些代码需要能够使用反射或其他“后门”机制修改异常消息。也有可能过去有,或者将来会有

但是,坦率地说,为什么这样做并不重要。您的代码不应该依赖于这个
私有
变量,因此它是否为
最终
对您来说应该没有区别


1-。。。对我来说

2-我在OpenJDK代码库中搜索了出现的
detailMessage
,其中一些命中与这个理论是一致的。查看
../hotspot/src/share/vm/classfile/javaClasses.cpp