类型不匹配:无法从整数转换为布尔值

时间:2012-02-14 04:51:45

标签: java android type-conversion

public boolean clearSelection() {
    int i = 0;
    if (!this.m_SelectedComps.isEmpty()) {
        i = 1;
        Iterator localIterator = this.m_SelectedComps.iterator();
        while (localIterator.hasNext())
            ((AnnotComponent) localIterator.next()).remove();
        this.m_SelectedComps.clear();
    }

    return i;
}

如何将整数转换为布尔值?

7 个答案:

答案 0 :(得分:40)

尝试使用此返回

return i == 1;

或者只是使用布尔值来启动(使用更好的名称):

 public boolean clearSelection()
  {
    boolean flag = false;
    if (!this.m_SelectedComps.isEmpty())
    {
      flag = true;
      Iterator localIterator = this.m_SelectedComps.iterator();
      while (localIterator.hasNext())
        ((AnnotComponent)localIterator.next()).remove();
      this.m_SelectedComps.clear();
    }
    return flag;
  }

为什么人们使用i - 一个可怕的变量名称,这仍然让我感到困惑。看起来像1,并没有传达任何意义。

答案 1 :(得分:15)

可能您只需修改您的return语句而无需对代码进行太多更改,如下所示:

return i > 0 ? true : false ;

答案 2 :(得分:14)

我知道这个帖子已经老了但是想添加一些帮助我的代码,并且可能会帮助其他人搜索这个...

您可以使用org.apache.commons.lang api使用BooleanUtils类将int转换为boolean:

BooleanUtils.toBoolean(int value)

“使用零为false的约定将int转换为布尔值。” (Javadoc中)


以下是Maven& Gradle依赖项,只需确保您在链接http://mvnrepository.com/artifact/org.apache.commons/commons-lang3

上检查是否使用了最新版本

Maven依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>

Gradle Dependency:

'org.apache.commons:commons-lang3:3.4'

答案 3 :(得分:4)

将int转换为boolean:

return i > 0;

答案 4 :(得分:1)

将i声明为布尔值:

public boolean clearSelection()
{
    boolean i = false;
    if (!this.m_SelectedComps.isEmpty())
    {
        i = true;
        Iterator localIterator = this.m_SelectedComps.iterator();
        while (localIterator.hasNext())
          ((AnnotComponent)localIterator.next()).remove();
        this.m_SelectedComps.clear();
    }
    return i;
}

答案 5 :(得分:1)

public boolean clearSelection(){
    int i = 0;
    if (!this.m_SelectedComps.isEmpty())
    {
        i = 1;
        Iterator localIterator = this.m_SelectedComps.iterator();
        while (localIterator.hasNext())
            ((AnnotComponent)localIterator.next()).remove();
        this.m_SelectedComps.clear();
     }
     return (i!=0);
}

答案 6 :(得分:0)

在Java中,您不能在整数和布尔值之间键入强制类型转换,但可以使用以下我经常使用的技术:

要将布尔值转换为整数:

int i;
return i != 0;

要将整数转换为布尔值:

boolean b;
return b ? 1 : 0;