gpt4 book ai didi

java - 使 "class"成为 transient 或可序列化但该类是可序列化的

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:10 27 4
gpt4 key购买 nike

在检查我的代码后,SonarQube 5.1 标记了很多关键问题。但是类本身和字段中的引用类也是可序列化的。被引用类通过类继承可序列化接口(interface)。

这是我的例子

public class A implements Serializable {
private B b; // -> Sonarcube markes this field as not serialzable
}

B类定义如下

public class B extends C {
....
}

C类定义如下

public abstract class C extends D {
....
}

定义了类D

public abstract class D implements Serializable {
....
}

在同一项目上运行 FindBugs 不会发现这些问题。我不确定这是 sonarcube 中的错误还是我的代码有其他问题(类 C、D 中的其他字段或其他)

有人知道吗?

最佳答案

可能是二进制文件没有提供正确。我的 SonarQube 配置也有类似的问题,然后我发现实现 Serializable 的类位于不同的模块和/或外部库中。

sonar.java.binariessonar.java.libraries 设置正确的值允许 SonarQube 定位二进制文​​件并正确确定类是否可序列化。

关于java - 使 "class"成为 transient 或可序列化但该类是可序列化的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29507980/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com