Les Crash-Devs d'un Passionné

Eviter une exception sur un cast

/Catégorie/java

Temps de lecture : 1 minutes

Ayant fait auparavant du développement C#, j'utilisais une méthode TryParse qui permet de faire un cast sur une chaine de caractère et ne pas péter une exception si l'opération échoue. En C# on le fait comme cela

clipboard
Copier le code
1
2
3
4
int number;
bool resultCast = Int32.TryParse(valueToCast, out number);
// number contient le cast en Int de valueToCast
// resultCast définit si le cast a échoué

Mais en Java il n'existe pas d'équivalent car les mots clés contextuels out/ref sont abscents dans cette technologie. En effet en Java tout est passé par valeur. Mais ce point fait parti d'un autre débat...

Afin de ne pas avoir d'exception en Java quand le cast ne fonctionne pas on peut faire cela

clipboard
Copier le code
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
private boolean tryParseInt(String value) {  
       try {  
             Integer.parseInt(value);  
             return true;  
        } catch (NumberFormatException e) {  
             return false;  
        }  
}

String valueToCast = "gordon";
int resultCast = 0;
if(tryParseInt(valueToCast))
{
     resultCast = Integer.parseInt(valueToCast)
}