我写了一对夫妇
我想编写一种方法包含(1(中的这样的方法但是我遇到了"无法将CLS分解为类型"的错误,我已经使用(2(。
。,但我根本不喜欢它。您对编写此方法更加优雅和失败有任何建议吗?
(1(
private boolean containsInstanceof(Class<?extends GameObject> cls) {
return this.getFirst() instanceof cls || this.getSecond() instanceof cls;
}
(2(
private boolean containsInstanceof(Class<?extends GameObject> cls) {
return this.getFirst().getClass().getName().equals(cls.getName()) ||
this.getSecond().getClass().getName().equals(cls.getName());
}
期望(1(中没有错误,但不能将CLS解析为类型。
您必须使用Class.isInstance
方法:
此方法是java语言实例Operator的动态等效。
return cls.isInstance(this.getFirst()) || cls.isInstance(this.getSecond());