Pourquoi Double.parseDouble (null) et Integer.parseInt (null) lèvent-ils des exceptions différentes?
Est-ce un accident historique ou intentionnel? La documentation indique clairement deux types d'exceptions pour Double.parseDouble(...)
et un pour Integer.parseInt()
, mais cela semble incohérent:
Integer.parseInt(null); // throws java.lang.NumberFormatException: null
toutefois
Double.parseDouble(null); // throws java.lang.NullPointerException
double
primitif docs.oracle.com/javase/tutorial/java/nutsandbolts/…parseDouble
ne fait pas de vérification nulle, et lance simplement un NPE lorsqu'il est rencontré, mais dansparseInt
, alors la chaîne d'entrée est vérifiéenull
. Je ne vois aucune bonne raison pour laquelle ils devraient se comporter différemment.Réponses:
Et:
Tiré de: Rapport bogue: Integer.parseInt () et Double.parseDouble () throw différentes exceptions sur null.
Comme d'autres l'ont déclaré: il est probablement fait par différents auteurs.
la source
Remarque: tout dans ce post est dans le source de Java7-b147
Double.parseDouble()
entre dans une bibliothèque Sun (danssun.misc.FloatingDecimal
) la première chose importante qui se produit est:Integer.parseInt()
se fait manuellement dans laInteger
classe. La première chose importante qui se produit est:Je suppose qu'il y a deux auteurs différents.
la source