2011-10-27 2 views
-1

tout le monde =) Je suis en train de lancer une chaîne de doubler cette façonCoulée dynamique. ClassCastException

Class.forName("java.lang.Double").cast("100") 

Mais il jette ClassCastException. :(
Quel est le problème avec cela et comment puis-je obtenir ce que je veux

+4

Parce qu'il est faux, c'est la raison pour laquelle vous obtenez l'erreur - alors ne pas le faire de cette façon, et lire l'API comme il vous aurait dit cela. Au lieu d'analyser la chaîne via Double.parseDouble. –

+0

Je sais cela, mais je ne peux pas l'utiliser parce que je ne sais pas quel type je dois lancer à la compilation. – Tror

+0

Pourriez-vous être un peu plus précis? Quelles sont les valeurs possibles pour la chaîne d'entrée? Où allez-vous stocker le résultat? Pourquoi avez-vous besoin de cela? – PaoloVictor

Répondre

3

Vous ne pouvez pas jeter un String faire Double Si vous voulez obtenir la représentation Double pour une String, vous pouvez soit:..

Double d = new Double("100"); 

ou

double d = Double.parseDouble("100"); 
+0

Je sais cela, mais je ne peux pas l'utiliser parce que je ne sais pas quel type je dois lancer à la compilation. – Tror

+2

Je me demande si nous sommes supposés deviner par magie quelles sont ses exigences et ses contraintes. –

1

Vous êtes essentiellement essayer de lancer une chaîne à doubler comme si

String s = "100"; 
Double d = (Double)s; 

Vous ne pouvez pas faire cela. C'est la raison de votre ClassCastException.

Vous devez utiliser Double.valueOf()