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