Како решити ЦлассЦастЕкцептион у Јави?

Kako Resiti Classcastekception U Javi



У Јави, „ ЦлассЦастЕкцептион ” помаже да се идентификују проблеми са компатибилношћу типова током извршавања, омогућавајући програмерима да их ухвате рано у фази развоја. Такође обезбеђује сигурност типа, спречавајући недоследности у програму. ЦлассЦастЕкцептион много помаже у процесу отклањања грешака, тестирања, исправног преливања типа итд.

Овај водич показује процедуру за решавање ЦлассЦастЕкцептион у Јави.







Како ЦлассЦастЕкцептион настаје у Јави?

ЦлассЦастЕкцептион ” обезбеђује правилно пребацивање типа и спречава грешке у току извршавања узроковане конверзијама некомпатибилних типова. Једноставним речима, овај изузетак се ствара када се објекат покуша да се пребаци на некомпатибилан тип.



На пример, посетите доњи код о „ ЦлассЦастЕкцептион ” на Јави:



увоз јава.ио.* ;
увоз јава.ланг.* ;
увоз јава.утил.* ;

класа ЛинукХинт {
//Креирање класе возача
јавности статична празнина главни ( Низ [ ] аргс )
{
покушати {
Објекат родитељ = Нова Објекат ( ) ;

Низ дете = ( Низ ) родитељ ;
Систем . оут . принтлн ( дете ) ;
}
улов ( Изузетак ф ) {
Систем . оут . принтлн ( ф ) ;
}
}
}

Објашњење горњег кода:





  • У „ покушати ” блок, инстанца објекта “ родитељ ” се проглашава коришћењем „ Нова ” кључна реч.
  • Након тога, користи се куцање у којем се „ објекат ” тип се куца и има име “ дете ”.
  • Ово превођење типа крши правило да родитељска класа не сме да буде примењена на своју подређену класу. Зато изузетак настаје јер „ објекат ” тип је родитељска класа.
  • На крају, „ улов ” користи се блок који узима “ Изузетак ” као параметар и штампа поруку на конзоли.

Након завршетка фазе извршења:



Горњи снимак показује појаву ЦлассЦастЕкцептион у Јави.

Како решити ЦлассЦастЕкцептион у Јави?

Користе се три могућа решења која програмер може лако да реши или избегне шансу да подигне „ ЦлассЦастЕкцептион ” на Јави.

Ова решења су посебно описана у наставку:

Решење 1: Употреба „инстанцеоф“ оператора

инстанцеоф ” оператор проверава да ли је „ објекат ” је инстанца жељеног типа или не. Ова верификација помаже у спречавању појаве „ ЦлассЦастЕкцептион ”. На пример, посетите блок кода испод:

јавности класа ТипеЦхецкингЛинукХинт {
јавности статична празнина главни ( Низ [ ] аргс ) {

Објекат родитељ = „ЛинукХинт породица“ ;
ако ( родитељ инстанцеоф Низ ) {
Низ дете = ( Низ ) родитељ ;
Систем . оут . принтлн ( 'Након увођења стринга: ' + дете ) ;
} друго {
Систем . оут . принтлн ( „Објекат је инстанца жељеног типа Стринг.“ ) ;
}
}
}

Објашњење горњег кода:

  • Прво, „ родитељ ” креира се објекат који се иницијализује лажном вредношћу унутар „ покушати ' блокирати.
  • Затим користите 'ако' изјава у којој је „ инстанцеоф ” оператор се користи за проверу инстанце „ родитељ ” објекат са жељеним “ Низ ' тип.
  • Затим, ако се услов врати “ истина ” се врши пребацивање типа и приказује се на конзоли.
  • У супротном, прилагођена порука о грешци се приказује на конзоли.

Након завршетка фазе извршења:

Снимак показује да је превођење типа успешно обављено и да је ЦлассЦастЕкцептион решен помоћу „ инстанцеоф ” оператор.

Решење 2: Прегледајте и исправите операцију превођења типа

Друго решење је да проверите код више пута и прегледате компатибилне типове за примену типа. На пример, посетите доњи код у коме је „ ЦлассЦастЕкцептион ” бива ухапшен због некомпатибилног жељеног типа за куцање:

јавности класа ТипеЦхецкЛинукХинт {
јавности статична празнина главни ( Низ [ ] аргс ) {
Објекат родитељ = „ЛинукХинт породица“ ;
Интегер цонвертедНумбер = ( Интегер ) родитељ ;
Систем . оут . принтлн ( „Број након увођења типа:“ + цонвертедНумбер ) ;
}
}

У горњем коду, програмер је погрешно бацио „ Низ ' до ' Интегер ”.

Након завршетка фазе компилације:

Горњи снимак показује појаву ЦлассЦастЕкцептион.

Решење 3: Употреба генерика

Програмери могу да користе „ генерички ” да наведете очекиване типове и примените безбедност типова у време компилације.

На пример, посетите код у наставку:

увоз јава.утил.АрраиЛист ;
увоз јава.утил.Лист ;

јавности класа усингГенерицс {
јавности статична празнина главни ( Низ [ ] аргс ) {
Листа < Низ > емпНаме = Нова Низ листа <> ( ) ;
емпНаме. додати ( 'Хари' ) ;
емпНаме. додати ( 'Поттер' ) ;

Низ Иницијал = емпНаме. добити ( 0 ) ;
Низ Коначни = емпНаме. добити ( 1 ) ;

Систем . оут . принтлн ( 'Име: ' + Иницијал ) ;
Систем . оут . принтлн ( 'Презиме: ' + Коначни ) ;
}
}

Објашњење горњег кода:

  • Прво, потребни услужни програми се увозе у Јава датотеку, а класа „ усингГенерицс ” је проглашено.
  • Затим, „ Низ листа ” типа “ Низ ” је декларисано са именом “ емпНаме ” и иницијализовано обезбеђивањем два лажна елемента података.
  • Затим креирајте две променљиве типа стринг под називом „ Иницијал ' и ' Коначни ”. Након тога, доделите вредности приступом бројевима индекса.
  • На крају, прикажите обе варијабле да бисте видели резултат.

Након завршетка извршавања, излаз изгледа овако:

Горњи снимак илуструје да је превођење типа изведено коришћењем генерика.

Закључак

Да бисте решили „ ЦлассЦастЕкцептион ” у Јави, програмер мора да обезбеди одговарајућу компатибилност типова, коришћење „ генерички ” и „ инстанцеоф ” оператор. Да би решио изузетак, програмер мора да прегледа и исправи операцију ливења тако што ће обезбедити одговарајућу компатибилност типа. Штавише, овај „ ЦлассЦастЕкцептион ” се може избећи коришћењем „ генерички “ и уз употребу „ инстанцеоф ” оператор. Овај водич је демонстрирао метод за решавање ЦлассЦастЕкцептион у Јави.