签入对象instanceof Class <! - ?扩展Object2 - >

时间:2011-10-10 15:19:47

标签: java instanceof

基本上我想检查一个类是否是所提供接口的实例。

我有一个带有此签名的方法:

public ICard draw(Class<? extends ICardType> type)

然后我尝试这样做,但它被标记为错误;

if (deck.get(i) instanceof type)

NetBeans将此视为错误:

  

找不到符号
  符号:类类型   location:class simple.marauroa.client.extension.cardgame.impl.DefaultDeck

我甚至从其他一个问题中尝试过这个问题:

deck.get(i).isAssignableFrom(type)

我看到了诸如Checking programmatically if a .class file extends particular classHow to check instanceof on an argument that is a Class object?之类的问题,但它们不符合我的情况。

任何提示或想法?我知道我在某个地方犯了一个愚蠢的错误。

1 个答案:

答案 0 :(得分:5)

我想你只想要

if (type.isInstance(deck.get(i)))

来自documentation

  

确定指定的Object是否与此Class表示的对象分配兼容。此方法是Java语言instanceof运算符的动态等效项。如果指定的Object参数为非null,则该方法返回true,并且可以强制转换为此Class对象表示的引用类型,而不会引发ClassCastException。否则返回false。