2013-06-04 34 views
5

Tôi đã tự hỏi liệu có thể trong java để đánh giá nhiều biến cùng nhau trong điều kiện if-else như trong python.Đánh giá nhiều biến cùng nhau trong điều kiện

mã nguồn thật

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

đang giả

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

AFAIK, không thể thực hiện được trong Java. –

+0

Không thể! Bạn có thể xem tại đây: http://www.dummies.com/how-to/content/how-to-use-if-statements-in-java.html –

+0

@RongNK Có Tôi đồng ý với bạn. nó chỉ là một nghi ngờ cho tôi :) – agpt

Trả lời

6

cách duy nhất này sẽ làm việc là nếu abc là một boolean (và nó sẽ không làm những gì bạn đang hy vọng nó sẽ làm, nó sẽ chỉ đơn giản là kiểm tra nếu abc == true). Không có cách nào để so sánh một thứ với nhiều thứ trong Java.

0

IMHO Đầu tiên là cách tốt hơn và có thể.

Đến với cách thứ hai ..nếu họ boolean giá trị

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

ĐẦU DỰ THẢO

Bạn có thể viết smth như thế này:

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

sau đó bạn có thể sử dụng nó như:

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

CẬP NHẬT 1:

tôi đã đưa ra một ý tưởng mới, viết chức năng sử dụng varargs như:

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

sử dụng: (bạn có thể vượt qua để hoạt động nhiều tranh cãi)

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

UPDATE 2:

Cách tiếp cận tốt nhất là sử dụng thư viện apache commons ObjectUtils, nó chứa một số sẵn sàng sử dụng các phương pháp như:

+1

Vâng, tôi đã làm như thế này ở những nơi khác nhau .. :) – agpt

+0

Làm thế nào là điều này khác nhau? – squiguy

+0

@squiguy thực sự ở nhiều nơi cho mục đích xác nhận tôi phải viết cùng một điều, do đó, đó là lý do tại sao tôi hỏi liệu có bất kỳ kế hoạch tương lai trong java cho loại đó không :) – agpt

1

Đó là Impossible trong java, bạn có thể sử dụng Varargs:

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

Xem thêm:

2

của nó không thể rằng trong Java. Thay vào đó bạn có thể làm một cái gì đó như thế này: -

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. 
} 

Nếu bất kỳ mục nào là null, sau đó phương pháp này sẽ trở lại true, ngược lại nó sẽ trở false. Bạn có thể sử dụng nó theo yêu cầu của bạn.

Các vấn đề liên quan