我正试图将SpotBugs添加到我的项目中,专门用于SE_NO_SERIALVERSIONID,在使用effort=max运行之后,我没有看到一个类被检测到,但是我们知道了10个测试示例,以查看它们是否会被检测到……所有类都有这样的模式。
public final class SessionInfo implements Serializable
{
...
}所以我们清楚地知道,支票本来是应该发生的,但没有。
是否有一种方法可以查看为什么或显式启用此检查?
编辑:
我正在试着调试为什么这不会触发,并看到它应该看看https://github.com/spotbugs/spotbugs/blob/master/spotbugs/src/main/java/edu/umd/cs/findbugs/detect/SerializableIdiom.java#L410-L413的斑点虫源代码
当我打开调试日志记录时,我看到
[spotbugs] Directly implements Serializable: org/apache/cassandra/streaming/SessionInfo
...
[spotbugs] org.apache.cassandra.streaming.SessionInfo
[spotbugs] hasPublicVoidConstructor: false
[spotbugs] superClassHasVoidConstructor: true
[spotbugs] isExternalizable: false
[spotbugs] isSerializable: true
[spotbugs] isAbstract: false
[spotbugs] superClassImplementsSerializable: false
[spotbugs] isGUIClass: false
[spotbugs] isEjbImplClass: false
[spotbugs] isJSPClass: false并不是每个变量都被记录下来,但是知道被检查的代码应该触发.
发布于 2022-11-07 21:11:20
在ant中,我将reportLevel=设置为“低”,似乎这是被过滤掉的。
https://stackoverflow.com/questions/74323979
复制相似问题