如何在java中返回boolean(primitive)?

时间:2017-05-18 19:32:44

标签: java

我是java新手,因此,我不确定我是否做得对。我要做的是找出字符串列表中的项目数是偶数还是原始数据。

public class LearnAboutInputs { 
    public boolean isEven(String[] value) {
        if (value.size() % 2 == 0 && boolean == true) {
            return true;
        } else {
            return false;
        }
    }
}

3 个答案:

答案 0 :(得分:5)

你放在那里是无效的。使其有效的最小编辑将是:

public class LearnAboutInputs { 
    public boolean isEven(String[] value) {
        if(value.length % 2 == 0) {
            return true;
        }
        else {
            return false;
        }

这假设您打算查看数组的长度,而不是查看字符串或字符串中的size()。

但是,if检查本身就是boolean,所以你可以更简洁地写一下:

public class LearnAboutInputs { 
    public boolean isEven(String[] value) {
        return value.length % 2 == 0;
    }

SeeDart和PoisonedYouth提出了关于空检查的一个好点,因此将其添加到简洁的示例中会导致:

public class LearnAboutInputs { 
    public boolean isEven(String[] value) {
        return value != null && value.length % 2 == 0;
    }

如果值为null,则语句短路为false,因此下半部分不会被评估,使其有效。

如果要返回类Boolean而不是primitive boolean的对象,请将返回类型从小写“boolean”更改为initial-cap“Boolean”字。方便的autoboxing功能将为您做好腿部工作。

public class LearnAboutInputs { 
    public Boolean isEven(String[] value) {  // Return object rather than primitive.
        return value != null && value.length % 2 == 0;  // Autoboxing transforms the generated `boolean` primitive value into a `Boolean` object.
    }

答案 1 :(得分:3)

您的代码几乎是正确的。我修复了一些语法错误,但我不确定您尝试使用boolean == true做什么。确保您的输入有效也是一种很好的做法!

public class LearnAboutInputs { 
    public boolean isEven(String[] value) {
        if (value == null) {
            return false;
        }
        if (value.length % 2 == 0) {
            return true;
        }
        else {
            return false;
        }
    }
}

答案 2 :(得分:0)

这里有各种各样的东西。让我们重写:

public class LearnAboutInputs { 
  public boolean hasEvenLength(String[] value) {
    if (value != null && value.length % 2 == 0) {
      return true;
    }
    return false;
  }
}

这里有合理的变化:

  • 更改方法名称以说明方法正在做什么!
  • 避免使用else块;这里根本不需要 - 并且没有使用else块使得可能的控制流看起来更加清晰