2013-06-04 37 views
5

一起評估多個變量我想知道它是否可能在java中一起評估多個變量if-else條件,如在python如果條件爲

實際代碼

if(abc!=null && xyz!=null) 
{//...} 

虛設碼

if(abc && xyz !=null) 
{// will it be possible} 
+1

AFAIK,這在Java中是不可能的。 –

+0

不可能!你可以在這裏看到:http://www.dummies.com/how-to/content/how-to-use-if-statements-in-java.html –

+0

@RongNK是的,我同意你的看法。這只是我的一個疑問:) – agpt

回答

6

只有這樣的工作方式是,如果abc是一個布爾值(和它不會做你希望是什麼它會這樣做,它會簡單地測試如果abc == true)。沒有辦法在Java中將一件事與多件事進行比較。

0

恕我直言,首先是更好的方式和可能的方式。

即將到來的第二種方式..如果他們是boolean

if(abc && xyz) 
{//...} 
11

初稿

您可以編寫水木清華這樣的:

boolean notNull(Object item) { 
    return item != null; 
} 

,那麼你可以使用它像:

if (notNull(abc) && notNull(xyz)) { 
    //... 
} 

UPDATE 1:

,我想出了一個新的想法,使用寫函數可變參數像:

boolean notNull(Object... args) { 
    for (Object arg : args) { 
     if (arg == null) { 
      return false; 
     } 
    } 
    return true; 
} 

用法:(你可以傳遞給函數的多個參數)

if (notNull(abc, xyz)) { 
    //... 
} 

更新2:

最好的辦法是使用庫apache commons ObjectUtils, 它包含幾個準備使用類似的方法:

+1

是的,我已經在不同的地方這樣做了.. :) – agpt

+0

這有什麼不同? – squiguy

+0

@squiguy實際上在許多地方用於驗證目的我必須寫同樣的東西,所以這就是爲什麼我問是否有任何未來的計劃在這種java的java :) – agpt

1

這是在Java 不可能,您可以使用​​:

public boolean checkAnything(Object args...){ 
    for(Object obj args){ 
    if(...) 
    } 
    return ....; 
} 

參見:

2

它不可能在Java中。相反,你可以做這樣的事情: -

public boolean checkForNulls(Object... args){ 
    List<Object> test = new ArrayList<Object>(Arrays.asList(args)); 
    return test.contains(null); // Check if even 1 of the objects was null. 
} 

如果任何項目是null,那麼該方法將返回true,否則它會返回false。您可以按照您的要求使用它。