Classes sont des types de données. Moulages sont utilisés pour identifier les objets récupérés pour les tableaux, les listes et les collections . Moulages peuvent également convertir des données d'un type à un autre . Exceptions en fonte de classe ou des erreurs de ClassCastException sont générés par la machine virtuelle Java (JVM ) au moment de convertir les types de données incompatibles . Les classes et les jette
Java, jette identifier le type de l'objet quand il ne peut pas être reconnue . Types de classes sont convertibles en types d'interface si la classe utilise l'interface . Jette convertir un type d'interface dans un type de classe. Methods in java exercent des fonctions ou des calculs. Les méthodes peuvent extraire des données à partir de différents types de classe. Lorsque la méthode Java tente de convertir les données d'une classe à l'autre en utilisant des moulages , des erreurs sont jetés .
Causes
erreurs peuvent se produire lorsque les conversions de données et les calculs changent l' données aux types de données incompatibles. Si une référence est castée en type de données incompatibles ou un type de données non valide , un ClassCastException est généré par Java. ClassCastException se produit aussi quand une référence d'objet est jeté dans une sous-catégorie pour laquelle il n'est pas une instance. " SCJP Sun Certified Programmer pour plate-forme Java », dit «beaucoup des méthodes de l'API types d'objets de retour Java qui ont besoin d'être jeté à leur type approprié de la classe enfant . " Modification de la classe des données lors du traitement par la méthode peut également causer ClassCastException erreurs.
types incompatibles
Dates
et les entiers sont des types de données incompatibles . Les caractères et les types de données numériques sont incompatibles. Types booléens sont incompatibles avec les chiffres. Types de retour covariants ne sont pas compatibles avec les types primitifs . Cordes et références d'objets sont des types incompatibles. Données à virgule flottante peuvent être convertis en nombres entiers , et les valeurs seront tronqués en conséquence. Valeurs tronquées peuvent être incompatibles dans les calculs de la méthode plus tard. Entiers et les chaînes sont des types de données incompatibles .
Erreurs empêchant
Assurez-vous que les variables manipulées par la même méthode partagent le même type de données. Moulage de la classe dans un type de cible d'une gamme plus grande que le type de source pour empêcher la troncature . Erreurs de ClassCastException sont évitables en utilisant vrai - faux chèques . Ajouter " if" pour vérifier si les types de données sont compatibles pour éviter les erreurs de ClassCastException et instructions de manipulation d'exception sur ce qu'il faut faire si un type de données n'est pas compatible. Utilisez la gestion des exceptions logique dans la méthode des exceptions en fonte de classe pour éviter les messages d'erreur . Déclarations InstanceOf prévenir casting incorrects . Selon " SCJP Sun Certified Programmer pour plate-forme Java », « utiliser l'opérateur instanceof pour éviter classcast -exception lorsque vous n'êtes pas sûr du type de données réelles d'une référence qui doit couler " " Structures de données: Abstraction and Design Utilisation de Java " . " le parti des génériques (listes de tableau ) , c'est que le compilateur ne peut garantir que toutes les opérations impliquant des objets référencés par un ArrayList générique sont «sûrs» et ne causeront pas des exceptions lors de l'exécution . "