簡體   English   中英

類型不匹配:無法從整數轉換為布爾值

[英]Type mismatch: cannot convert from integer to boolean

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

如何將整數轉換為布爾值?

嘗試使用此返回

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並沒有傳達任何意義。

可能你可以只修改你的 return 語句而無需對代碼進行太多更改,如下所示:

return i > 0 ? true : false ;

我知道這個線程很舊,但想添加一些對我有幫助的代碼,並且可能會幫助其他人搜索這個...

您可以使用 org.apache.commons.lang api 使用 BooleanUtils 類將 int 轉換為 boolean:

BooleanUtils.toBoolean(int value)

“使用零為假的約定將 int 轉換為布爾值。” (Javadocs)


這是 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依賴:

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

將 int 轉換為布爾值:

return i > 0;

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

您不能在 Java 中在整數和布爾值之間進行類型轉換,但您可以使用我經常使用的以下技術:

將布爾值轉換為整數:

int i;
return i != 0;

將整數轉換為布爾值:

boolean b;
return b ? 1 : 0;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM