java - 逻辑错误与否?

标签 java

我已经写了这个函数来设置 val=max 或 min(如果 val 为空) 或 val=val(val 以整数或“max”或“min”的形式出现)

在调用时我可能会发送 checkValue(val,"min") 或 checkValue(val,"max")

 public String checkValue(String val,String valType)
 {

   System.out.println("outside if val="+val);

   if(!val.equals("min") && !val.equals("max"))
     {
     System.out.println("Inside if val="+val);

     try{
         System.out.println("*Inside try val="+val);
         Integer.parseInt(val);
         }

     catch(NumberFormatException nFE)
         {
         System.out.println("***In catch val="+val);
         val=valType;
         }

     return val;
     }
     else
     {
       return val;
     }
}

但问题是如果 val 变为 null 那么 外面 if******val=null 显示。 任何人都可以告诉我这是一个逻辑错误吗? 我为什么要更正?

最佳答案

如果 val 为 null,则表达式 val.equals("min") 将抛出异常。

您可以使用以下方法更正此问题:

if (!"min".equals(val) && !"max".equals(val))

让它进入 if block ...但我会在方法开始时亲自处理它:

if (val == null) {
  // Do whatever you want
}

顺便说一句,为了可读性,您可能需要考虑在您的代码中允许更多的空格...目前它非常密集,这使得它更难阅读。

关于java - 逻辑错误与否?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4031458/

相关文章:

java - 如果没有要检查的字符,如何设置值

java - RichFaces中Ajax请求的取消

java - 使用 Replace 方法查找字符串中字符的计数

java - Spring 中完整的 AspectJ 支持

java - SWT:影响拖放手势的检测(或者:如何查询键盘)

Java:当使用 Procrun 将应用程序注册为 Windows 服务时,使用 ProcessBuilder 运行批处理文件

Java:通配符数组类型可以同时用作参数和返回类型吗?

java - 如何在编写单元测试时验证对象属性

java - 产品循环 用户询问有多少产品最贵

java - AWS 源代码错误?