在java中检查空引用的乐观方法

Optimistic way of checking null references in java

本问题已经有最佳答案,请猛点这里访问。

任何Java精通/专家都能告诉我,在使用null来避免EDCOX1×0时,检查空引用或对象的乐观方式是什么?

在我的代码中,我有100多个字段,其中大部分是为了传递请求中的值而需要的,但是我需要在每次传递请求之前执行空检查,以避免NullPointerException

我在下面展示了一小段代码,我在其中每次检查每个字段的空值(比如在我的一个文件中超过70次),这看起来不好,代码变得非常难看和不可读。有没有什么方法可以让我们编写方法并通过它执行空对象检查?

基本上,我正在寻找更好、乐观和更快的方法来做这件事,任何快速的帮助都是非常需要的。

1
2
3
4
5
6
7
8
9
10
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


1
2
3
4
5
6
7
8
9
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);
}


根据你的ifS,你知道Strings?比较条件,使法:P></

1
2
3
public boolean isValid(String s) {
    return s != null && s !="" && !s.isEmpty();
}

如果你想用这个方法的对象出现public boolean isValid(Object o)change the signature,P></

和你的代码干净:as this will beP></

1
2
3
4
5
6
7
8
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></

1
2
3
4
5
6
7
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></

1
2
3
4
5
6
7
public Object[] checkForNull(Object[] objects){
    for(int i = 0;i<objects.length;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></