签入 Class<? 的对象实例扩展了 Object2>



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

我有一个签名如下的方法:

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

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

if (deck.get(i) instanceof type)

NetBeans给出如下错误:

找不到符号
符号:类类型class simple.marauro .client.extension.cardgame.impl. defaultdeck

我甚至从另一个问题中尝试了这个:

deck.get(i).isAssignableFrom(type)

我看到这样的问题:通过编程检查。class文件是否扩展了特定的类,以及如何检查参数上的instanceof是class对象?但是他们不符合我的设想。

有什么提示或想法吗?我知道我在某个地方犯了一个愚蠢的错误。

我想你只是想

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

来自文档:

确定指定的Object是否与这个类所表示的对象的赋值兼容。这个方法是Java语言instanceof操作符的动态等效。如果指定的Object参数非空,则该方法返回true,并且可以将其强制转换为由此Class对象表示的引用类型而不会引发ClassCastException。否则返回false。

最新更新