首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FindBugs死区警告-我应该重构代码还是忽略警告

FindBugs死区警告-我应该重构代码还是忽略警告
EN

Stack Overflow用户
提问于 2013-03-13 16:57:05
回答 2查看 6.1K关注 0票数 3

我收到了一个DeadStore警告,下面是Findbug on int i。由于可读性,我不喜欢写一行.是否有更好的方法来编写这个,这样就不会有DeadStore到i,而是一样可读的了?

代码语言:javascript
复制
   if (aqForm.getId() != null) {
        try {
            int i = Integer.parseInt(aqForm.getId());
            aqForm.setId(aqForm.getId().trim());
        } catch (NumberFormatException nfe) {
            result.rejectValue("id", "error.id", "Please enter an integer.");
            foundError = true;
        }
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-13 16:59:23

您不必分配给i。您只需调用parseInt()并忽略结果:

代码语言:javascript
复制
   if (aqForm.getId() != null) {
        try {
            Integer.parseInt(aqForm.getId()); // validate by trying to parse
            aqForm.setId(aqForm.getId().trim());
        } catch (NumberFormatException nfe) {
            result.rejectValue("id", "error.id", "Please enter an integer.");
            foundError = true;
        }
    }

也就是说,我将创建一个助手函数:

代码语言:javascript
复制
   public static boolean isValidInteger(String str) {
      ...
   }

然后重写你的代码片段如下:

代码语言:javascript
复制
   String id = aqForm.getId();
   if (id != null) {
      if (isValidInteger(id)) {
         aqForm.setId(id.trim());
      } else {
         result.rejectValue("id", "error.id", "Please enter an integer.");
         foundError = true;
      }
   }
票数 5
EN

Stack Overflow用户

发布于 2013-03-13 16:59:10

只需调用该方法并忽略结果,最好用注释来解释原因:

代码语言:javascript
复制
// Just validate
Integer.parseInt(aqForm.getId());

请注意,我们还不清楚为什么要修改尚未验证的版本,而不是您所拥有的版本。我更喜欢:

代码语言:javascript
复制
String id = aqForm.getId();
if (id != null) {
    try {
        id = id.trim();
        // Validate the ID
        Integer.parseInt(id);
        // Store the "known good" value, post-trimming
        aqForm.setId(id);
    } catch (NumberFormatException nfe) {
        result.rejectValue("id", "error.id", "Please enter an integer.");
        foundError = true;
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15391654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档