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

jav*_*csw 3 java instanceof

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

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

public ICard draw(Class<? extends ICardType> type)
Run Code Online (Sandbox Code Playgroud)

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

if (deck.get(i) instanceof type)
Run Code Online (Sandbox Code Playgroud)

NetBeans将此作为错误:

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

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

deck.get(i).isAssignableFrom(type)
Run Code Online (Sandbox Code Playgroud)

我看到了以下问题:以编程方式检查.class文件是否扩展了特定类,以及如何检查作为Class对象的参数的instanceof?但他们不符合我的情况.

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

Jon*_*eet 5

我想你只是想要

if (type.isInstance(deck.get(i)))
Run Code Online (Sandbox Code Playgroud)

文档:

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