I Java er ' ClassCastException ” hjælper med at identificere type kompatibilitetsproblemer under kørsel ved at give udviklere mulighed for at fange dem tidligt i udviklingsfasen. Det sikrer også typesikkerhed, hvilket forhindrer uoverensstemmelser i programmet. ClassCastException hjælper meget i processen med debugging, test, korrekt type casting osv.
Denne vejledning demonstrerer proceduren til at løse ClassCastException i Java.
Hvordan opstår ClassCastException i Java?
Det ' ClassCastException ” sikrer korrekt typecasting og forhindrer runtime-fejl forårsaget af inkompatible typekonverteringer. Enkelt sagt bliver denne undtagelse kastet, når et objekt forsøges castet til en inkompatibel type.
Besøg for eksempel nedenstående kode om ' ClassCastException ” i Java:
importere java.io.* ;
importere java.lang.* ;
importere java.util.* ;
klasse LinuxTip {
//Oprettelse af førerklasse
offentlig statisk ugyldig vigtigste ( Snor [ ] args )
{
prøve {
Objekt forælder = ny Objekt ( ) ;
Snor barn = ( Snor ) forælder ;
System . ud . println ( barn ) ;
}
fangst ( Undtagelse f ) {
System . ud . println ( f ) ;
}
}
}
Forklaring af ovenstående kode:
- I ' prøve ' blok, forekomsten af et objekt ' forælder ' erklæres ved at bruge ' ny ” nøgleord.
- Derefter bruges typecasting, hvor ' objekt ' type bliver typecastet og har navnet ' barn '.
- Denne typecasting overtræder reglen om, at den overordnede klasse ikke må typecastes til dens underordnede klasse. Derfor opstår undtagelsen, fordi ' objekt ” type er en forældreklasse.
- I sidste ende vil ' fangst ' blok bruges, der tager ' Undtagelse ” som en parameter og udskriver en meddelelse på konsollen.
Efter afslutningen af udførelsesfasen:
Ovenstående snapshot viser forekomsten af ClassCastException i Java.
Sådan løses ClassCastException i Java?
Der bruges tre mulige løsninger, som udvikleren nemt kan løse eller undgå chancen for at hæve ' ClassCastException ' i Java.
Disse løsninger er beskrevet separat nedenfor:
Løsning 1: Brug af 'instanceof' Operator
Det ' forekomst af '-operatøren verificerer, om ' objekt ” er en instans af den ønskede type eller ej. Denne verifikation hjælper med at forhindre forekomsten af ' ClassCastException ”. Besøg for eksempel nedenstående kodeblok:
offentlig klasse TypeCheckingLinuxTip {offentlig statisk ugyldig vigtigste ( Snor [ ] args ) {
Objekt forælder = 'LinuxHint Family' ;
hvis ( forælder forekomst af Snor ) {
Snor barn = ( Snor ) forælder ;
System . ud . println ( 'Efter typecasting af streng: ' + barn ) ;
} andet {
System . ud . println ( 'Objekt er en forekomst af den ønskede type String.' ) ;
}
}
}
Forklaring af ovenstående kode:
- For det første ' forælder '-objekt oprettes, som initialiseres med en dummy-værdi inde i ' prøve ” blok.
- Brug derefter 'hvis' erklæring, hvori ' forekomst af '-operator bruges til at kontrollere forekomsten af ' forælder ' objekt med ønsket ' Snor ' type.
- Dernæst, hvis betingelsen returnerer ' rigtigt ” typecastingen udføres og vises på konsollen.
- Ellers vises den brugerdefinerede fejlmeddelelse på konsollen.
Efter afslutningen af udførelsesfasen:
Snapshottet viser, at typecasting er udført med succes, og ClassCastException er løst ved hjælp af ' forekomst af ” operatør.
Løsning 2: Gennemgå og korrekt typecasting
En anden løsning er at tjekke koden flere gange og gennemgå de kompatible typer til typecasting. Besøg f.eks. nedenstående kode, hvori ' ClassCastException ” bliver arresteret på grund af en inkompatibel ønsket type til typecasting:
offentlig klasse TypeCheckLinuxTip {offentlig statisk ugyldig vigtigste ( Snor [ ] args ) {
Objekt forælder = 'LinuxHint Family' ;
Heltal konverteret Antal = ( Heltal ) forælder ;
System . ud . println ( 'Nummer efter typecasting: ' + konverteret Antal ) ;
}
}
I ovenstående kode castede programmøren forkert ' Snor ' til ' Heltal '.
Efter afslutningen af kompileringsfasen:
Ovenstående snapshot viser forekomsten af ClassCastException.
Løsning 3: Brug af generiske lægemidler
Programmørerne kan bruge ' generiske lægemidler ” for at specificere de forventede typer og håndhæve typesikkerhed på kompileringstidspunktet.
Besøg for eksempel nedenstående kode:
importere java.util.ArrayList ;importere java.util.List ;
offentlig klasse ved at bruge Generics {
offentlig statisk ugyldig vigtigste ( Snor [ ] args ) {
Liste < Snor > empName = ny ArrayList <> ( ) ;
empName. tilføje ( 'Harry' ) ;
empName. tilføje ( 'Potter' ) ;
Snor Initial = empName. få ( 0 ) ;
Snor Finale = empName. få ( 1 ) ;
System . ud . println ( 'Fornavn: ' + Initial ) ;
System . ud . println ( 'Efternavn: ' + Finale ) ;
}
}
Forklaring af ovenstående kode:
- Først importeres de nødvendige hjælpeprogrammer til Java-filen, og en klasse af ' ved at bruge Generics ” erklæres.
- Dernæst ' ArrayList ' af typen ' Snor ' er erklæret med navnet ' empName ” og initialiseret ved at levere to dummy-dataelementer.
- Opret derefter to strengtypevariabler med navnet ' Initial ' og ' Finale ”. Tildel derefter værdier ved at få adgang til indeksnumrene.
- Til sidst skal du vise begge variabler for at se resultatet.
Efter afslutningen af udførelsen ser outputtet sådan ud:
Ovenstående snapshot illustrerer, at typecastingen er blevet udført ved brug af generiske stoffer.
Konklusion
For at løse ' ClassCastException ' i Java skal programmøren sikre korrekt typekompatibilitet, brug af ' generiske lægemidler ' og ' forekomst af ” operatør. For at løse undtagelsen skal programmøren gennemgå og rette casting-operationen ved at sikre korrekt typekompatibilitet. Desuden er denne ' ClassCastException ' kan undgås ved at bruge ' generiske lægemidler ' og ved brug af en ' forekomst af ” operatør. Denne vejledning har demonstreret metoden til at løse ClassCastException i Java.