web-dev-qa-db-fra.com

Non-correspondance de type: impossible de convertir un entier en booléen

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

Comment convertir l'entier en booléen?

13
user1129139

Essayez d'utiliser ce retour

return i == 1;

ou utilisez simplement un booléen pour commencer (avec un meilleur nom):

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

Cela continue de me mystifier pourquoi les gens utilisent i - un horrible nom de variable. Ressemble à 1 et ne donne aucun sens.

42
Hogan

Peut-être que vous pouvez simplement modifier votre déclaration de retour sans beaucoup de changement de code comme ci-dessous:

return i > 0 ? true : false ;
16
Priyank Doshi

Je sais que ce fil est ancien mais je voulais ajouter du code qui m'a aidé et pourrait aider les autres à le rechercher ...

Vous pouvez utiliser l'api org.Apache.commons.lang pour convertir un int en booléen à l'aide de la classe BooleanUtils:

BooleanUtils.toBoolean(int value)

"Convertit un entier en booléen en utilisant la convention selon laquelle zéro est faux." (Javadocs)


Voici les dépendances Maven & Gradle, assurez-vous simplement que vous utilisez la dernière version sur le lien http://mvnrepository.com/artifact/org.Apache.commons/commons-lang

Dépendance Maven:

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

Dépendance Gradle:

'org.Apache.commons:commons-lang3:3.4'
14
tbraun

Convertir int en booléen:

return i > 0;
4
Filip Spiridonov

Déclarez i en tant que booléen:

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;
}
1
MByD
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);
}
1
dervel