Тестирование линейных отношений класса - PullRequest
0 голосов
/ 02 декабря 2008

Я называю это линейными классовыми отношениями , но поправьте меня, если я ошибаюсь. Я пытаюсь проверить, является ли класс объекта A предком или потомком класса объекта B .

Например, AbstractCollection линейно связан с Object и ArrayList . Однако ArrayList не линейно связан с Vector .

Мой первый удар был:

//...Assume objects A and B were declared...

Class<? extends Object> Aclass = A.getClass();
if(Aclass.isAssignableFrom(B.getClass()) || Aclass.isInstance(B)){
    //Their types are linearly related, at the least
}

Это подходящий чек?

1 Ответ

2 голосов
/ 02 декабря 2008

Ваш тест работает. Я предпочитаю симметричный чек:

if (a.getClass().isInstance(b) || b.getClass().isInstance(a)) { 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...