2014-10-07 112 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