基本上我想检查一个类是否是所提供接口的实例。
我有一个带有此签名的方法:
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 class和How to check instanceof on an argument that is a Class object?之类的问题,但它们不符合我的情况。
任何提示或想法?我知道我在某个地方犯了一个愚蠢的错误。
答案 0 :(得分:5)
我想你只想要
if (type.isInstance(deck.get(i)))
确定指定的Object是否与此Class表示的对象分配兼容。此方法是Java语言instanceof运算符的动态等效项。如果指定的Object参数为非null,则该方法返回true,并且可以强制转换为此Class对象表示的引用类型,而不会引发ClassCastException。否则返回false。