本问题已经有最佳答案,请猛点这里访问。
任何Java精通/专家都能告诉我,在使用null来避免EDCOX1×0时,检查空引用或对象的乐观方式是什么?
在我的代码中,我有100多个字段,其中大部分是为了传递请求中的值而需要的,但是我需要在每次传递请求之前执行空检查,以避免NullPointerException。
我在下面展示了一小段代码,我在其中每次检查每个字段的空值(比如在我的一个文件中超过70次),这看起来不好,代码变得非常难看和不可读。有没有什么方法可以让我们编写方法并通过它执行空对象检查?
基本上,我正在寻找更好、乐观和更快的方法来做这件事,任何快速的帮助都是非常需要的。
if(amount != null && amount !="" && !amount.isEmpty())
AIMRequest.put("x_Amount", amount);
if(currency != null && currency !="" && !currency.isEmpty())
AIMRequest.put("x_Currency_Code", currency);
if(expDate != null && expDate !="" && !expDate.isEmpty())
AIMRequest.put("x_Exp_Date", expDate);
...........so on
为此制定一个方法。干的
@你的意思是干的吗?:)NVM。
@凯瑟:我得查一下。
代码的真正问题是它的错误删减;如果您复制和粘贴,并忘记修改一个变量名,即即时错误。
相关:stackoverflow.com/questions/271526/…
检查空值的乐观方式不是不检查空值吗?;)
当你也有EDOCX1[1]的时候,EDOCX1[0]有什么意义?
amount !="" && !amount.isEmpty()与!amount.isEmpty()相同
顺便问一下,你的意思是"乐观"还是"优化"?
@汤姆不完全是…
@混蛋…对-他应该用等号来代替…
add("x_Amount", amount);
add("x_Currency_Code", currency);
add("x_Exp_Date", expDate);
void add(String name, String value)
{
if(value!=null && !value.isEmpty())
AIMRequest.put(name, value);
}
嗨,bayou.io-这会提高性能吗?
@用户4567570-不用担心,JVM很可能会优化它。
根据你的ifS,你知道Strings?比较条件,使法:P></
public boolean isValid(String s) {
return s != null && s !="" && !s.isEmpty();
}
如果你想用这个方法的对象出现public boolean isValid(Object o)change the signature,P></
和你的代码干净:as this will beP></
if(isValid(amount))
AIMRequest.put("x_Amount", amount);
if(isValid(currency)
AIMRequest.put("x_Currency_Code", currency);
if(isValid(expDate)
AIMRequest.put("x_Exp_Date", expDate);
但如果你能收集到的对象:在安arrayP></
public boolean isValid(Object[] os) {
for (String s : os) {
boolean isValid = s != null && s !="" && !s.isEmpty();
if (!isValid) return false;
}
return true;
}
嗨,乔迪-这会提高性能吗?
this method of will accept an阵列对象和环通them to check for any Undefined对象或空或空。P></
public Object[] checkForNull(Object[] objects){
for(int i = 0;i
//check all conditions for null empty or no data.
if(objects[i]!= null && objects!="" && !objects[i].isEmpty())
object[i] ="UNDEFINED";
return objects[];
}
我知道现在你可以传球的对象想要check for the U或Undefined空或零,然后在你的房子在哪里,想用U u need to do is check:if(object =="UNDEFINED")P></
希望helps EN。P></