答案 0 :(得分:6)
SonarQube将此行标记为错误,因为java.util.List并未实现java.io.Serializable。 java.util.ArrayList是可序列化的,但bondAxeMarkQuoteUpdates
是protected
,因此有人可以为其分配其他非序列化列表(例如,在子类中)。
要解决问题,您可以:
transient
,但在序列化期间将忽略该字段private
,以便SonarQube可以验证没有人为其分配不可序列化的列表答案 1 :(得分:5)
我收到同样的错误,解决方案是将变量上使用的类转为import socket
ip_list = open('output.txt', 'r')
ais = socket.getaddrinfo(ip_list, 0)
print(ais)
。
例如,这显示错误,因为Serializable
不是Object
:
Serializable
本案中最简单的解决方案是转换第二个参数private Map<String, Object> map = new HashMap<>();
。所以,你可以使用:
Serializable
如果您使用自己的班级(而非private Map<String, Serializable> map = new HashMap<>();
),则可以将班级设为Object
。
答案 2 :(得分:-1)
如规则文档中所述(您可以在屏幕截图中点击...):https://sonarqube.com/coding_rules#rule_key=squid%3AS1948
此规则在非Serializable字段和集合字段上引发了一个问题,当它们不是私有时(因为它们可以在外部分配非Serializable值)