我有两个这样的方法
public void updateA (Object obj) throws CommonException
{
if ( !(obj instanceof A) )
{
throw new CommonException(obj);
}
// other codes
}
public void updateB (Object obj) throws CommonException
{
if ( !(obj instanceof B) )
{
throw new CommonException(obj);
}
// other codes
}
现在我想将实例检查部分提取到一个单独的方法中。 有可能做到如下吗?
public void chkInstance (Object obj, Class classType) throws CommonException
{
if ( !(obj instanceof classType) )
{
throw new CommonException(obj);
}
}
答案 0 :(得分:3)
使用Class.isInstance
:
if(!(classType.isInstance(obj)) {
// ...
}
documentation实际上是平坦的状态(强调我的):
确定指定的Object是否与此Class表示的对象分配兼容。 此方法是Java语言instanceof运算符的动态等效项。