#2991·gson

在 Java 26 中准备最终的字段变异警告

作者: TheDGOfficial创建于 2026年3月10日更新于 2026年3月12日
标签bug

Gson 的版本

2.1.3.2

Java / Android 版本 (简体中文)

openjdk 版本 "26" 2026-03-17
OpenJDK 运行时环境( 建造 26+35- 2893)
OpenJDK 64-Bit 服务器 VM(构建 26+35-2893,混合模式,共享)

用过的工具

<! -- -- 在此列出相关的构建工具和插件, 其版本号可能影响 Gson -- -- >

  • 马文;版本:
  • [ ]格拉德;版本:
  • ProGuard(请附上配置文件);版本:
  • ...

描述

在Java 26下运行时会出现最后的场突变警告.

□ 预期行为 没有需要警告。

□ 实际行为 警告出现

复制步骤 贾瓦 导入 com.google.gson.Gson;

类 : 最后一个字符串最后一个字段;

带有最终字段( 字符串 s) { 最后领域 = s; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

无效打印 (){ IO.println( 最终战地); {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

无效主( ) { 新建 Gson () 从 Json () "" "" "" {"最终战地":"你好,世界!"} "" "" "" ,“与最后场.class”),打印(; {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


1. 与Java 25同跑;无警告,变异工作.
2. 与Java 26一起运行;发出警告,突变仍然有效,但在未来发布时将被拒绝。

要运行,将gson 2.132 罐从maven Central下载,将上面的代码保存到一个名为TestFieldModific化的文件. java,并运行如下:

java-cp gson-2.13.jar 测试最终场面摩德化. java


对于Java 26,用去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去

*Java 26仍然在早期进入,但将大致达到普遍可用。 一周后,我想提前提出这个问题。

{\fn方正粗倩简体\fs12\an8\1cHFFFF00\b0}例外堆栈追踪

警告:班级中最后的战地 Field Field 页面存档备份,存于互联网档案馆 页面存档备份,存于互联网档案馆 页面存档备份,存于互联网档案馆 页面存档备份,存于互联网档案馆 页面存档备份,存于互联网档案馆 Class of Class with Findal Field 页面存档备份,存于互联网档案馆 页面存档备份,存于互联网档案馆 p. 警告:使用-enable-field-mutation=ALL-UNNAMED来避免警告 警告: 除非启用最后的字段突变, 最终字段将在未来发布时被屏蔽


当使用 -- 非法- 最终- 场- 调试时 :

最终战地 最终战地 最终战地 测试 最终战地 最终战地 最终战地 最终战地 最终战地 最终战地 最终战地 最终战地 最终战地 最终战地 最终战地 最终战地 最终战地 最终战地 最终战地 页面存档备份,存于互联网档案馆 Java.base/java.lang.refly.field.postSetFinal (Field.java:1534) 页面存档备份,存于互联网档案馆 Java.base/java.lang.refly.field.setFinal (Field.java:1449) 在java.base/java.lang.倒数.frect.field.set(Field.java:909)上使用. com.google.gson.internal.bind. ReflectiveTypeAdapter Factory$2. read Into Field (ReflectiveTypeAdapter Factory.java:282) (中文(简体) ). com.google.gson.internal.bind. ReflectiveTypeAdapter Factory$ FieldReflectAdapter.read Field (ReflectiveTypeAdapter Factory.java:559) (中文(简体) ). com.google.gson.internal.bind. ReflectiveTypeAdapter Factory$Adapter. read (ReflectiveTypeAdapter Factory.java: 517) (英语). 时间 . . . . . . .