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

标签 java static-analysis findbugs

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/

相关文章:

python - selenium ActionChains 缺少执行

java - 如何使用checkstyle、PMD、findbugs等工具检查java类的继承级别?

gradle - 如何使用 Findbugs omitVisitors?

java - 在 Eclipse 比较编辑器中不显示隐藏符号作为两个文件的区别

java - OpenCv 模板匹配 - 意外的屏蔽结果

c# - 分析和比较类似功能逻辑的工具?

c++ - 用于模型检查大型分布式 C++ 项目(如 KDE)的工具?

java - 在Java中,我可以在每次事件分派(dispatch)线程从处理输入事件返回时调用一个例程吗?

java - 在运行时从注释处理器获取信息