Java: как должен выглядеть метод instanceof - PullRequest
2 голосов
/ 17 декабря 2009

Представьте себе, я хочу написать бесполезный метод с именем: isInstanceof, который возвращает boolean.
Я думал об этом. Но я не выхожу. instanceof должен использоваться как:

[object] instanceof [a classname]

// I was thinking about something like this
public static boolean isInstanceof(Object obj, /*magic for the second param*/)
{
   return obj instanceof /*the magical second param*/
}

Но как сделать параметр для [a classname]? Есть ли способ сделать это без метода isInstance(Class cls) от java.lang.Class?

Спасибо

Ответы [ 2 ]

5 голосов
/ 17 декабря 2009

Хе-хе, да. Используйте isAssignableFrom (Class) из Class. Он не только не isInstance(Class), но также соответствует тому, как оператор instanceof работает более тесно. :)

Кроме этого, нет, вы мало что можете сделать без этих методов из Class.

2 голосов
/ 17 декабря 2009

Динамическая версия

[object] instanceof [a classname] 

будет:

Class.forName("a classname").isAssignableFrom(object.getClass());
...