很多if语句

时间:2014-10-07 12:30:11

标签: java

如何检查其他三个对象的属性?我需要为每个三个属性检查它是否不等于null,然后对每三个语句执行一些操作。

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);
      }

但它似乎没有用,有什么建议吗?

2 个答案:

答案 0 :(得分:1)

如果我理解了U,那么U需要这样的东西:如果所有三个值小于'0'而不是...如果当值不等于null时你需要做某事,那么用>代替!=

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

答案 1 :(得分:0)

我不确定我完全理解你的问题,但这是我的想法

首先,尝试删除尽可能多的重复代码。现在你正在为每个 currentX 做同样的事情,这是浪费屏幕空间但是对可读性也不利。假设 current current1 current2 属于同一类型,您可以执行以下操作:

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);
            }
        )
    }
}

另外,我不确定你在分配系列时想要做些什么。因此,我就这样离开了。

编辑:-------------------

根据OP的反馈,我提出了我的答案第2版。 首先,您的代码中存在语法错误。这很可能是导致错误的原因。 其次;

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的理解,我把它留下了。