ஜாவாவில் ClassCastException ஐ எவ்வாறு தீர்ப்பது?

Javavil Classcastexception Ai Evvaru Tirppatu



ஜாவாவில், ' ClassCastException 'இயக்க நேரத்தில் வகை இணக்கத்தன்மை சிக்கல்களை அடையாளம் காண, டெவலப்பர்களை டெவலப்பர் கட்டத்தின் ஆரம்பத்திலேயே பிடிக்க அனுமதிக்கிறது. இது வகை பாதுகாப்பையும் உறுதி செய்கிறது, திட்டத்தில் உள்ள முரண்பாடுகளைத் தடுக்கிறது. பிழைத்திருத்தம், சோதனை, சரியான வகை வார்ப்பு போன்ற செயல்பாட்டில் ClassCastException பெரிதும் உதவுகிறது.

இந்த வழிகாட்டி ஜாவாவில் ClassCastException ஐ தீர்க்கும் செயல்முறையை விளக்குகிறது.







ஜாவாவில் ClassCastException எப்படி உருவாகிறது?

' ClassCastException ” சரியான வகை வார்ப்புகளை உறுதி செய்கிறது மற்றும் இணக்கமற்ற வகை மாற்றங்களால் ஏற்படும் இயக்க நேரப் பிழைகளைத் தடுக்கிறது. எளிமையான சொற்களில், ஒரு பொருள் பொருந்தாத வகைக்கு அனுப்ப முயற்சிக்கும் போது இந்த விதிவிலக்கு வீசப்படுகிறது.



உதாரணமாக, '' பற்றி கீழே உள்ள குறியீட்டைப் பார்க்கவும். ClassCastException 'ஜாவாவில்:



இறக்குமதி java.io.* ;
இறக்குமதி java.lang.* ;
இறக்குமதி java.util.* ;

வர்க்கம் LinuxHint {
//ஓட்டுனர் வகுப்பை உருவாக்குதல்
பொது நிலையான வெற்றிடமானது முக்கிய ( லேசான கயிறு [ ] args )
{
முயற்சி {
பொருள் பெற்றோர் = புதிய பொருள் ( ) ;

லேசான கயிறு குழந்தை = ( லேசான கயிறு ) பெற்றோர் ;
அமைப்பு . வெளியே . println ( குழந்தை ) ;
}
பிடி ( விதிவிலக்கு f ) {
அமைப்பு . வெளியே . println ( f ) ;
}
}
}

மேலே உள்ள குறியீட்டின் விளக்கம்:





  • இல் ' முயற்சி 'தடுப்பு, ஒரு பொருளின் நிகழ்வு' பெற்றோர் '' ஐப் பயன்படுத்தி அறிவிக்கப்படுகிறது புதிய ” முக்கிய வார்த்தை.
  • அதன்பிறகு, டைப்காஸ்டிங் பயன்படுத்தப்படுகிறது இதில் ' பொருள் 'வகை டைப்காஸ்ட் செய்யப்படுகிறது மற்றும் பெயர் உள்ளது' குழந்தை ”.
  • இந்த டைப்காஸ்டிங், பெற்றோர் வகுப்பு அதன் குழந்தை வகுப்பிற்கு தட்டச்சு செய்யக்கூடாது என்ற விதியை மீறுகிறது. அதனால்தான் விதிவிலக்கு எழுகிறது ஏனெனில் ' பொருள் ” வகை என்பது ஒரு பெற்றோர் வகுப்பு.
  • இறுதியில், ' பிடி 'தடுப்பு பயன்படுத்தப்படுகிறது' விதிவிலக்கு ” ஒரு அளவுருவாக மற்றும் கன்சோலில் ஒரு செய்தியை அச்சிடுகிறது.

செயல்படுத்தல் கட்டம் முடிந்த பிறகு:



மேலே உள்ள ஸ்னாப்ஷாட் ஜாவாவில் ClassCastException நிகழ்வதைக் காட்டுகிறது.

ஜாவாவில் ClassCastException ஐ எவ்வாறு தீர்ப்பது?

மூன்று சாத்தியமான தீர்வுகள் பயன்படுத்தப்படுகின்றன, அவை டெவலப்பர் எளிதாக தீர்க்கலாம் அல்லது ''' ClassCastException ” ஜாவாவில்.

இந்த தீர்வுகள் தனித்தனியாக கீழே விவரிக்கப்பட்டுள்ளன:

தீர்வு 1: 'உதாரணமாக' ஆபரேட்டரின் பயன்பாடு

' உதாரணமாக 'ஆபரேட்டர் சரிபார்க்கிறார் என்றால்' பொருள் ” என்பது விரும்பிய வகையின் உதாரணம் அல்லது இல்லை. இந்த சரிபார்ப்பு '' நிகழ்வதைத் தடுக்க உதவுகிறது ClassCastException ”. உதாரணமாக, கீழே உள்ள குறியீடு தொகுதியைப் பார்வையிடவும்:

பொது வர்க்கம் TypeCheckingLinuxHint {
பொது நிலையான வெற்றிடமானது முக்கிய ( லேசான கயிறு [ ] args ) {

பொருள் பெற்றோர் = 'LinuxHint குடும்பம்' ;
என்றால் ( பெற்றோர் உதாரணமாக லேசான கயிறு ) {
லேசான கயிறு குழந்தை = ( லேசான கயிறு ) பெற்றோர் ;
அமைப்பு . வெளியே . println ( 'சரம் தட்டச்சு செய்த பிறகு:' + குழந்தை ) ;
} வேறு {
அமைப்பு . வெளியே . println ( 'பொருள் என்பது விரும்பிய வகை சரத்தின் ஒரு நிகழ்வு.' ) ;
}
}
}

மேலே உள்ள குறியீட்டின் விளக்கம்:

  • முதலில், ' பெற்றோர் 'பொருள் உருவாக்கப்பட்டது, இது ஒரு போலி மதிப்புடன் துவக்கப்பட்டது' முயற்சி ” தொகுதி.
  • பின்னர், பயன்படுத்தவும் 'என்றால்' அதில் ' உதாரணமாக 'ஆபரேட்டர்' இன் நிகழ்வை சரிபார்க்க பயன்படுத்தப்படுகிறது பெற்றோர் 'விரும்பிய பொருள்' லேசான கயிறு ” வகை.
  • அடுத்து, நிபந்தனை திரும்பினால் ' உண்மை ” டைப்காஸ்டிங் செய்யப்பட்டு கன்சோலில் காட்டப்படும்.
  • இல்லையெனில், தனிப்பயன் பிழை செய்தி கன்சோலில் காட்டப்படும்.

செயல்படுத்தும் கட்டம் முடிந்த பிறகு:

ஸ்னாப்ஷாட் தட்டச்சு செய்தல் வெற்றிகரமாக முடிந்தது மற்றும் ClassCastException ஐப் பயன்படுத்தி தீர்க்கப்பட்டது என்பதைக் காட்டுகிறது உதாரணமாக 'ஆபரேட்டர்.

தீர்வு 2: மதிப்பாய்வு மற்றும் சரியான தட்டச்சு செயல்பாடு

குறியீட்டை பலமுறை சரிபார்த்து, தட்டச்சு செய்வதற்கு இணக்கமான வகைகளை மதிப்பாய்வு செய்வது மற்றொரு தீர்வாகும். உதாரணமாக, கீழே உள்ள குறியீட்டைப் பார்வையிடவும், அதில் ' ClassCastException ” தட்டச்சு செய்ய விரும்பப்படும் இணக்கமற்ற வகை காரணமாக கைது செய்யப்படுகிறார்:

பொது வர்க்கம் TypeCheckLinuxHint {
பொது நிலையான வெற்றிடமானது முக்கிய ( லேசான கயிறு [ ] args ) {
பொருள் பெற்றோர் = 'LinuxHint குடும்பம்' ;
முழு மாற்றப்பட்ட எண் = ( முழு ) பெற்றோர் ;
அமைப்பு . வெளியே . println ( 'தட்டச்சுக்குப் பின் எண்:' + மாற்றப்பட்ட எண் ) ;
}
}

மேலே உள்ள குறியீட்டில், புரோகிராமர் தவறாக ' லேசான கயிறு ” முதல் ” முழு ”.

தொகுத்தல் கட்டத்தின் முடிவில்:

மேலே உள்ள ஸ்னாப்ஷாட் ClassCastException நிகழ்வைக் காட்டுகிறது.

தீர்வு 3: ஜெனரிக்ஸ் பயன்பாடு

புரோகிராமர்கள் பயன்படுத்தலாம் ' பொதுவானவை ” எதிர்பார்க்கப்படும் வகைகளைக் குறிப்பிடவும், தொகுக்கும் நேரத்தில் வகைப் பாதுகாப்பைச் செயல்படுத்தவும்.

உதாரணமாக, கீழே உள்ள குறியீட்டைப் பார்வையிடவும்:

இறக்குமதி java.util.ArrayList ;
இறக்குமதி java.util.List ;

பொது வர்க்கம் ஜெனரிக்ஸ் பயன்படுத்தி {
பொது நிலையான வெற்றிடமானது முக்கிய ( லேசான கயிறு [ ] args ) {
பட்டியல் < லேசான கயிறு > empName = புதிய வரிசைப்பட்டியல் <> ( ) ;
empName. கூட்டு ( 'ஹாரி' ) ;
empName. கூட்டு ( 'குயவன்' ) ;

லேசான கயிறு ஆரம்ப = empName. பெறு ( 0 ) ;
லேசான கயிறு இறுதி = empName. பெறு ( 1 ) ;

அமைப்பு . வெளியே . println ( 'முதல் பெயர்:' + ஆரம்ப ) ;
அமைப்பு . வெளியே . println ( 'இரண்டாவது பெயர்: ' + இறுதி ) ;
}
}

மேலே உள்ள குறியீட்டின் விளக்கம்:

  • முதலில், தேவையான பயன்பாடுகள் ஜாவா கோப்பில் இறக்குமதி செய்யப்படுகின்றன, மேலும் ' ஜெனரிக்ஸ் பயன்படுத்தி ” என்று அறிவிக்கப்படுகிறது.
  • அடுத்து, ' வரிசைப்பட்டியல் 'வகை' லேசான கயிறு '' என்ற பெயரில் அறிவிக்கப்படுகிறது empName ” மற்றும் இரண்டு போலி தரவு கூறுகளை வழங்குவதன் மூலம் துவக்கப்பட்டது.
  • பின்னர், '' என்ற இரண்டு சரம் வகை மாறிகளை உருவாக்கவும். ஆரம்ப 'மற்றும்' இறுதி ”. அதன் பிறகு, குறியீட்டு எண்களை அணுகுவதன் மூலம் மதிப்புகளை ஒதுக்கவும்.
  • முடிவில், முடிவைக் காண இரண்டு மாறிகளையும் காட்டவும்.

செயல்படுத்தல் முடிந்த பிறகு, வெளியீடு இப்படி இருக்கும்:

மேலே உள்ள ஸ்னாப்ஷாட், ஜெனரிக்ஸைப் பயன்படுத்தி டைப்காஸ்டிங் செய்யப்பட்டுள்ளது என்பதை விளக்குகிறது.

முடிவுரை

தீர்க்க ' ClassCastException 'ஜாவாவில், புரோகிராமர் சரியான வகை இணக்கத்தன்மையை உறுதி செய்ய வேண்டும்,' பொதுவானவை ' மற்றும் இந்த ' உதாரணமாக 'ஆபரேட்டர். விதிவிலக்கைத் தீர்க்க, புரோகிராமர் சரியான வகை இணக்கத்தன்மையை உறுதி செய்வதன் மூலம் வார்ப்பு செயல்பாட்டை மதிப்பாய்வு செய்து சரிசெய்ய வேண்டும். மேலும், இந்த ' ClassCastException '' பயன்படுத்துவதன் மூலம் தவிர்க்கலாம் பொதுவானவை 'மற்றும் ஒரு ' பயன்படுத்தி உதாரணமாக 'ஆபரேட்டர். இந்த வழிகாட்டி ஜாவாவில் ClassCastException ஐ தீர்க்கும் முறையை விளக்கியுள்ளது.