Как избавиться от ClassCastException - PullRequest
0 голосов
/ 24 октября 2011

Предположим, у меня есть 2 совершенно разных пользовательских класса A и B.

A a = new A();

B b = new B();

. . .

. . .

a = (A) b; //I'm pretty sure this raises a ClassCastException, but how to deal with this issue?

Ответы [ 2 ]

2 голосов
/ 24 октября 2011

Вы не можете, если B не является производным от A.
В этом суть ClassCastException.

Но поскольку A и B совершенно разные, почему вы хотите преобразовать их в первую очередь?

0 голосов
/ 24 октября 2011

Тестирование перед присвоением переменной.

В Java:

if(a instanceof B)
    b = (B) a;

В C #:

if(a is B)
    b = (B) a;

Но, как кто-то упомянул, если вы не выводите класс a и b из c, я не вижу большой пользы от этого задания.

...