我有一个遗留应用程序,我正在尝试将其从 JDK8 转换为 JDK12。我遇到麻烦的地方之一是以下代码......
import jdk.nashorn.internal.ir.annotations.Immutable;
import java.util.Base64;
@Immutable // <-here
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public final class Application {
....
}
当我尝试使用 IntelliJ 构建时,我得到...
错误:(6, 43) java: 包 jdk.nashorn.internal.ir.annotations 不存在
错误:(10, 2) java: 找不到符号 symbol: class Immutable
该代码不容易理解,我不确定它的用途,但快速的 Google 搜索表明它允许 Java 运行 ES5。它似乎也已被弃用,并将很快被删除。最后是 ES5 而不是 ESNext,所以我想使用一些更新的东西。
- 这是用来做什么的(我猜是 JSON 序列化,但为什么不使用 GSON 或 Jackson?)
- 我可以用与 Java 12+ 兼容的东西来替换它吗?
如果我将其删除,则以下测试将失败...
@Test
public void equalsTest() {
EqualsVerifier.forClass(EvaluationResult.class).verify();
}
带有以下错误消息...
[ERROR] EvaluationResultTest.equalsTest:42 Mutability: equals depends on mutable field id.
For more information, go to: http://www.jqno.nl/equalsverifier/errormessages