基本上我想检查一个类是否是所提供接口的实例。
我有一个签名如下的方法:
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。