2011-07-08 4 views
4

Je regarde quelques bribes de code et suis tombé sur une déclaration de retour que je n'ai jamais vue auparavant. Qu'est-ce que ça veut dire?Que signifie cette déclaration de retour Java?

return checkDB != null ? true : false; 

est ici l'ensemble du code de la méthode, pour référence:

private boolean checkDataBase(){ 
     SQLiteDatabase checkDB = null; 
     try{ 
      String pathToDB = dbPath + dbName; 
      checkDB = SQLiteDatabase.openDatabase(pathToDB, null, SQLiteDatabase.OPEN_READONLY); 
     }catch(SQLiteException e){ 
      //database does't exist yet. 
     } 
     if(checkDB != null){ 
      checkDB.close(); 
     } 
     return checkDB != null ? true : false; 
    } 
+2

son code redondant. – Kal

+0

* "Question rapide" * "Quel est le sens de la vie?" est une question «rapide» à poser - mais la * réponse * prend plus de temps. –

Répondre

8

La même chose que return checkDB != null

?: est un "opérateur ternaire" qui. Exemple: a ? b : c fait la même chose qu'une méthode avec ce corps: { if(a) { return b; } else { return c; } }

+1

Je préfère à retour checkDB! = Null et être fait avec elle – Travis

+0

Ouais une version habilement déguisée de if (x == true) {return true} – Voo

+0

Merci Aaron et tous les autres qui ont répondu. Tout est clair maintenant! – james246

1

return checkDB != null ? true : false; est exactement le même que return checkDB != null;.

4

sa présentation ternaire peut être lu comme

if(checkDB != null) { 
    return true; 
} 
else { 
    return false; 
}