2014-10-07 81 views
-8

如何查看其他三個對象屬性?我需要檢查每個三個屬性是否不等於null,然後對每個三個語句執行一些操作。很多if語句

if(current.getValue()>0) 

{ 
    serie = fChart 
     .createSeries() 
     .setName(current.getLabel()) 
     .setPoints(
      new Number[]{ 
       {t.getTime(), 
        current.getValue()} 
       Chart.addSeries(serie); 

我需要檢查它在接下來的兩個語句,

if(current1.getValue()>0) 
then do something for the serie1, and 
if(current2.getValue()>0) 
then do something for the serie2 

我想它來寫,如:

if (current.getValue() > 0) { 
    serie = fChart 
     .createSeries() 
     .setName(current.getLabel()) 
     .setPoints(
      new Number[] { 
       { 
        t.getTime(), 
        current.getValue() } 


       Chart.addSeries(serie); 
    } 
    if (current1.getValue() > 0) { 
    serie1 = fChart 
     .createSeries() 
     .setName(current.getLabel1()) 
     .setPoints(
      new Number[] { 
       {t.getTime(), 
        current1.getValue1() } 
       Chart.addSeries(serie1); 
    } 
    if (current2.getValue() > 0) { 
     serie2 = fChart 
      .createSeries() 
      .setName(current.getLabel2()) 
      .setPoints(
       new Number[] { 
        {t.getTime(), 
         current2.getValue2() } 
        Chart.addSeries(serie2); 
     } 

但它不似乎工作,有什麼建議?

+4

請修復縮進。 – 2014-10-07 12:31:17

+3

請格式化此代碼... – 2014-10-07 12:32:05

+0

'但它似乎並不工作'什麼是問題? – Brandon 2014-10-07 12:33:01

回答

1

如果我理解正確的ü則U必須是這樣的:如果所有三個值小於0比做...如果ü需要做一些事情,當值不等於空,然後用!=

更換 >
if (current.getValue() > 0 && current1.getValue() > 0 && current2.getValue > 0) { 
    // some actions... 
} 
+0

它不工作要麼 – Kaly 2014-10-07 12:41:49

+0

我需要證明,如果所有三個值> 0,然後爲每個三個值做不同的事情 – Kaly 2014-10-07 12:45:30

+0

哦,我的上帝!在這個代碼程序中檢查所有值大於0,如果它們在IF體中,則需要編寫程序將執行的操作。 – 2014-10-07 12:48:03

0

我不知道我完全理解你的問題,但這裏是我的想法

首先,嘗試刪除儘可能多的重複的代碼越好。你現在正在爲每個currentX做同樣的事情,這是浪費屏幕空間,但也是可讀性差。假設當前當前第電流2是同一類型的,你可以做這樣的事情:

Object[] currents = [current, current1, current2]; 

for (Object cur : currents) { 
    if (cur.getValue() != null && cur.getValue() > 0) { 
     serie = fChart 
     .createSeries() 
     .setName(cur.getLabel()) 
     .setPoints(
      new Number[] { 
       { 
        t.getTime(), 
        cur.getValue() 
       } 
       Chart.addSeries(serie); 
      } 
     ) 
    } 
} 

而且,我不知道你想用的分配做什麼serie。因爲這個,我就這樣離開了它。

編輯:-------------------

基於從我來到了我的答案的2.0版本的OP反饋。首先,你的代碼中有一個語法錯誤。這很可能是導致你錯誤的原因。其次;

if (current.getValue() != null && current.getValue() > 0 && current1.getValue() != null && current1.getValue() > 0 && current2.getValue() != null && current2.getValue() > 0) { 
    serie = fChart 
    .createSeries() 
    .setName(cur.getLabel()) 
    .setPoints(
     new Number[] { 
      { 
       t.getTime(), 
       cur.getValue() 
      } 
      Chart.addSeries(serie); 
     } 
    ) 

    serie1 = fChart 
    .createSeries() 
    .setName(cur.getLabel1()) 
    .setPoints(
     new Number[] { 
      { 
       t.getTime(), 
       current1.getValue1() 
      } 
      Chart.addSeries(serie1); 
     } 
    ) 

    serie2 = fChart 
    .createSeries() 
    .setName(cur.getLabel2()) 
    .setPoints(
     new Number[] { 
      { 
       t.getTime(), 
       current2.getValue2() 
      } 
      Chart.addSeries(serie2); 
     } 
    ) 
} 

這應該滿足您的需求。如果您仍然有任何錯誤,請發佈或更具體地說明您真正想要的內容。

您可以通過重新使用serie對象而不是爲每個操作創建一個新對象來改善此操作,但對於OP的理解,我將它保留爲這樣。

+0

不,他使用getLabel1(),getLabel2()等... – 2014-10-07 12:46:03

+0

啊我看到了,我的不好。取決於每個getLabel()的實現,它仍然可以適用。如果它對OP或其他人仍然有用,我會放在這裏。謝謝。 – 2014-10-07 12:48:37

+0

是的,我沒有要求所有這些只有一個getLabel和getValue,它們都是三個不同的 – Kaly 2014-10-07 12:48:51