Tipi incompatibili Utilizzando Fusioni metodo della classe in Java

June 12

Tipi incompatibili Utilizzando Fusioni metodo della classe in Java


Le classi sono tipi di dati. Calchi sono utilizzati per identificare gli oggetti recuperati per gli array, liste e raccolte. Calchi possono anche convertire i dati da un tipo all'altro. eccezioni del cast di classe o errori ClassCastException sono generati da Java Virtual Machine (JVM) quando si tenta di convertire i tipi di dati incompatibili.

Classi e calchi

In Java, getta identificare il tipo di oggetto quando non può altrimenti essere riconosciuto. tipi di classe sono convertibili per interfacciare tipi se la classe utilizza l'interfaccia. Getta convertire un tipo di interfaccia in un tipo di classe. I metodi in Java svolgono funzioni o calcoli. I metodi possono estrarre i dati da tipi di classe diverse. Quando il metodo di Java tenta di convertire i dati da una classe all'altra utilizzando calchi, vengono generati errori.

Le cause

Gli errori possono verificarsi quando conversioni e calcoli dei dati cambiano i dati a tipi di dati incompatibili. Se un riferimento è lanciato ad un tipo di dati compatibile o tipo di dati non validi, un ClassCastException è generato da Java. ClassCastException si verifica anche quando un riferimento oggetto viene colato ad una sottoclasse per la quale non è un'istanza. "SCJP Sun Certified Programmer per Java Platform" dice "un sacco di metodi nei tipi di oggetto di ritorno API Java che devono essere gettato al loro adeguato tipo di classe del bambino." Modifica della classe di dati quando sono trattati con il metodo può anche causare ClassCastException errori.

Tipi incompatibili

Date e numeri interi sono tipi di dati incompatibili. Caratteri e tipi di dati numerici sono incompatibili. tipi booleani sono incompatibili con i numeri. tipi di ritorno covarianti non sono compatibili con i tipi primitivi. Stringhe e riferimenti a oggetti sono tipi incompatibili. dati a virgola mobile possono essere convertiti in numeri interi, ed i valori saranno troncati come risultato. I valori troncati possono essere incompatibili nei calcoli di metodo successive. Interi e stringhe sono i tipi di dati incompatibili.

prevenzione degli errori

Assicurarsi che le variabili manipolate con lo stesso metodo condividono lo stesso tipo di dati. Gettate la classe in un tipo di destinazione con una gamma più ampia rispetto al tipo di origine per evitare il troncamento. errori ClassCastException sono evitabili utilizzando vero-falso controlli. Aggiungere "if" per verificare se i tipi di dati sono compatibili per evitare errori ClassCastException e le istruzioni di gestione delle eccezioni su cosa fare se un tipo di dati non è compatibile. Usare la logica di gestione delle eccezioni all'interno del metodo per le eccezioni di classe del cast per evitare che i messaggi di errore. dichiarazioni instanceof impediscono fusione non corretta. Secondo "SCJP Sun Certified Programmer per Java Platform", "usare l'operatore instanceof per evitare classcast-eccezione quando non si è certi del tipo di dati effettivo di un punto di riferimento che ha bisogno di casting" "Strutture dati: astrazione e Design Con Java". " il vantaggio di farmaci generici (liste array) è che il compilatore può garantire che tutte le operazioni che coinvolgono gli oggetti a cui fa riferimento un ArrayList generici sono 'sicure' e non causerà eccezioni in fase di esecuzione. "