2013-05-08 3 views
0

Я ищу общий способ реализации этого фрагмента кода:Общий способ сравнения экземпляра класса в Java

if (!(obj instanceof MyClass)) { 
    return false; 
} 

В идеале я хотел бы что-то вроде (Так что я не должен жестко кода MyClass каждый раз):

if (!(obj instanceof this.getClass())) { 
    return false; 
} 

Однако этот пример не работает.

+5

Как выглядит «не работает»? \ – duffymo

+0

@duffymo Это создаст ошибку времени компиляции. 'instanceof' требует имя типа, а не объект класса или литерал. Этот код так же ошибочен, как '(obj instanceof Integer.class)' вместо '(obj instanceof Integer)'. – wchargin

ответ

5

Вы могли бы сделать

this.getClass().isInstance(obj); 
1

Вы можете использовать

getClass() != obj.getClass() 

Однако это не будет соответствовать подклассы только для excact матч класса.

Смежные вопросы