我已经写了这个函数来设置 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/