将类类型作为参数传递

时间:2011-11-25 05:52:09

标签: java

我有两个这样的方法

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);
  }
}

1 个答案:

答案 0 :(得分:3)

使用Class.isInstance

if(!(classType.isInstance(obj)) {
    // ...
}

documentation实际上是平坦的状态(强调我的):

  

确定指定的Object是否与此Class表示的对象分配兼容。 此方法是Java语言instanceof运算符的动态等效项。