gpt4 book ai didi

java - sonarQube 报告错误 - 使字段 transient 或可序列化

转载 作者:行者123 更新时间:2023-12-01 17:49:24 25 4
gpt4 key购买 nike

运行 sonarqube 分析后,我遇到了以下错误,我收到错误

Make "getPreAHistFlt" transient or serializable "

我们如何解决这个问题?

代码片段:

package com.sanju.p1; 
//webfault and namespace
@WebFault(name = "getPreAHistFlt", targetNamespace = "http://www.getPreAuthorizationHistory")
public class getPreAHistFltMsg extends Exception {

private com.sanju.p2.GetPreAHistFlt getPreAHistFlt; // showing bug here
//constructors
public getPreAHistFltMsg() {
super();
}

public getPreAHistFltMsg(String message) {
super(message);
}

public getPreAHistFltMsg(String message, Throwable cause) {
super(message, cause);
}

public getPreAHistFltMsg(String message, com.sanju.p2.GetPreAHistFlt getPreAHistFlt) {
super(message);
this.getPreAHistFlt = getPreAHistFlt;
}

public getPreAHistFltMsg(String message, com.sanju.p2.GetPreAHistFlt getPreAHistFlt, Throwable cause) {
super(message, cause);
this.getPreAHistFlt = getPreAHistFlt;
}

public com.sanju.p2.GetPreAHistFlt getFaultInfo() {
return this.getPreAHistFlt;
}
}

最佳答案

getPreAHistFltMsg extends Exception,它是Throwable的子类; Throwable 实现 Serialized,因此 Throwable 的所有子类也可传递地实现 Serializable

据推测,com.sanju.p2.GetPreAHistFlt 未实现Serialized。因此,如果您尝试序列化该字段非空的 getPreAHistFltMsg,则会失败,因为该字段的值无法序列化。

或者:

  • 通过使其暂时从序列化中排除该字段;
  • 使 GetPreAHistFlt 实现 Serialized(但请注意 Effective Java 项目,了解为什么实现 Serialized 是一件很重要的事情在做之前你应该仔细考虑);
  • 从中提取相关(可序列化)字段。

关于java - sonarQube 报告错误 - 使字段 transient 或可序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52147843/

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