[英]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.