【发布时间】:2019-05-22 23:46:04
【问题描述】:
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()。这是为什么呢?
【问题讨论】:
-
请考虑每个问题问一个问题。
-
在 web 环境中,您可以忽略 #setCorrectAnswers 的警告,因为每个用户都有自己的 ChannelBean 实例 (ViewScoped)
标签: java static-analysis findbugs