gpt4 book ai didi

java - findbugs 报告了这些关于我的项目代码的错误。为什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:50 26 4
gpt4 key购买 nike

findbugs 报告了这些关于我的项目代码的错误。

class channelBean defines non-transient non-serializable instance field subscriptionDao
in ChannelBean.java
Field com.derbyware.qtube.beans.ChannelBean.subscriptionDao
Actual type com.derbyware.qtube.dao.SubscriptionDao

代码:

@Named
@ViewScoped
public class ChannelBean extends BaseBacking implements Serializable {
private static final long serialVersionUID = 1L;

@EJB
private SubscriptionDao subscriptionDao;

为什么说我的 EJB 应该是可序列化的?我以前从未遇到过这样的建议。

getCorrectAnswerTwo() 可以通过返回对可变对象的引用来公开内部表示代码:

public String[] getCorrectAnswerTwo() {
return correctAnswerTwo;
}

我需要在 jsf 页面中显示数组。那么为什么该工具报告这是一个问题。

setCorrectAnswers 可以通过合并对可变对象的引用来公开内部表示

public void setCorrectAnswers(String[] correctAnswers) {
this.correctAnswers = correctAnswers;
}

它说我应该使用 Integer.parseInt() 而不是 Integer.valueOf()。这是为什么?

最佳答案

您显式声明包含类以实现 Serializeable。

所以拥有会导致序列化失败的字段可能是个问题。

并且该方法返回原始数组,因此该方法的任何调用者都可以更改该内部实现细节的状态。

对于这两种方法之间的区别,简单地做一些研究,比如阅读Difference between parseInt and valueOf in java?

这就是全部。

关于java - findbugs 报告了这些关于我的项目代码的错误。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53902815/

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