2008-10-26 4 views
6

Многие языки имеют средство, чтобы проверить, является ли объект определенного типа (в том числе родительских подклассов), реализуемый с «есть» и используется, как это:Что такое самый простой способ «есть» в Java?

if(obj is MyType) 

Или чуть более утомительно вы можете в другой проверять языки, используя ключевое слово «как», чтобы сделать мягкий тип и увидеть, если результат null.

Я не использовал Java в течение многих лет, и я возвращаюсь к скорости, но, конечно, у Java есть способ легко сделать это, не углубляясь глубоко в Reflection APIs?

Заранее благодарим за ответы. Я искал как здесь, так и в других местах, но ключевые слова настолько общие, что, хотя я уверен, что у этого есть простой ответ, поиск по Google трудно.

ответ

16
if (objectReference instanceof type){ 
    //Your code goes here 
} 

Дополнительная информация here.

+0

О да, это именно то, Я искал. Благодарю. – 2008-10-26 03:21:50

1

obj instanceof TargetType возвращает true на всякий случай TargetType находится в иерархии типов, которая содержит obj.

См Sun's tutorial

7

Вы можете использовать только instanceof с классом буквального: то есть:

Class type = String.class; 

if (myObj instanceof String) // will compile 

if (myObj instanceof type) //will not compile 

Альтернативой является использование метода Class.isInstance

if (type.isInstance(myObj)) // will compile 
Смежные вопросы