2015-09-21 5 views
-1

Каков правильный синтаксис, чтобы сделать эту работу?Использование instanceof с классом Object

public boolean isTypeOf(Class type) { 
    return this instanceof type; 
} 

Я намерен назвать его:

foo.isTypeOf(MyClass.class); 

Метод будет перекрываться, в противном случае я бы просто использовать instanceof InPlace.

+1

'this.getClass(). Equals (type)'? –

+3

Знаете ли вы о Class.isInstance (Object)? - http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#isInstance(java.lang.Object) – Injektilo

+1

Обратите внимание, что в грамматике Java экземпляр класса не является типом name - это значение, и нет способа получить typename из значения, даже с generics (например, в общей функции вы не можете сказать 'if (someObject instanceof T)'. – Injektilo

ответ

6

Class.isInstance(obj) Использование:

public boolean isTypeOf(Class type) { 
    return type.isInstance(this); 
} 

Этот метод определяет, является ли данный параметр является экземпляром класса. Этот метод также будет работать, если объект является подклассом класса.

Цитируя Javadoc:

Этот метод является динамический эквивалент языка instanceof оператора Java.