Если вы смотрите на события мыши / касания, Патрик Х. Лауке опубликовал разговор по этому вопросу . Определенно интересное чтение - и касается всех причуд разных браузеров, разных устройств и разных стандартов.
Он также связывает полный набор тестов .
if (obj instanceof C) {
//your code
}
Используйте Object.getClass () . Это возвращает тип выполнения объекта.
Можно использовать:
Object instance = new SomeClass();
instance.getClass().getName(); //will return the name (as String) (== "SomeClass")
instance.getClass(); //will return the SomeClass' Class object
HTH. Но я думаю большую часть времени, что это не хорошая практика для использования этого для потока управления или чего-то подобного...
Любое использование любого из предложенных методов считают запахом кода, который базируется в плохом дизайне OO.
, Если Ваш дизайн хорош, Вы не должны должными быть для использования getClass()
или instanceof
.
Любой из предложенных методов сделает, но просто что-то для учета, мудрый дизайном.
mListOfRegisteredHandlers
. Таким образом, в основном класс, который имеет, добавляет/удаляет функции-обработчики и возможно сделал бы, чтобы помощник функционировал позвонивший DispatchMessage(IMessage msg)
, который циклично выполнился бы через список mListOfRegisteredHandlers
и вызов msg.Dispatch(handler)
(последний фрагмент кода в моем ответе).
– SwDevMan81
21 October 2013 в 23:31
Существует также .isInstance
метод на" Class
" класс. если Вы получаете класс объекта через myBanana.getClass()
, Вы видите, является ли Ваш объект myApple
экземпляром того же класса как myBanana
через
myBanana.getClass().isInstance(myApple)