Je prétends que le moyen le plus évident de voir si la conversion d'une valeur changé la valeur serait de fonte et de vérifier le résultat. Je voudrais, toutefois, de supprimer l'inutile exprimés lors de la comparaison. Je suis également pas trop vif sur une lettre des noms de variables (à l'exception des x
et y
, mais pas quand ils veulent dire de ligne et de colonne (parfois, respectivement)).
public static int intValue(long value) {
int valueInt = (int)value;
if (valueInt != value) {
throw new IllegalArgumentException(
"The long value "+value+" is not within range of the int type"
);
}
return valueInt;
}
Toutefois, vraiment je voudrais éviter cette conversion si possible. Évidemment, parfois il n'est pas possible, mais dans ces cas - IllegalArgumentException
est presque certainement le mauvais exception à être jeter aussi loin que le code du client est concerné.