String A="……";
if(a instanceof Class.forName(A)) {
……
}

解决方案 »

  1.   

    同意楼上,要注意加ClassNotFoundException
      

  2.   

    好像instanceof 有个缺陷,就是对未知的类无法识别。
    而isinstance就没有这点不好的地方。
      

  3.   

    isinstance就可以识别未知类吗?
    只是不要用try块包起来。
      

  4.   

    可以写成if(a instanceof A.class)
      

  5.   

    String A = "test.A";DbUnitKernel dbk = null;
    Object obj = Class.forName(A).newInstance();
    if (!B.getClass().isInstance(obj)) {
       throw new DbUnitException("A is not a B instance!");
    }
      

  6.   

    都不是这样的呀
    我是想实现这样的功能:
    对于通过某中方法查找到的一个对象,我想知道这个对象是否属于某一个类的对象

    String classNameStr//类的名字
    Object a=....;//查找到对象
    if(a instanceof classNameStr)//在这里classNameStr为字符串,不行
    {
        .....
    }
      

  7.   

    同意
    beyond_xiruo(又再次无奈的离开)String A="……";
    if(a instanceof Class.forName(A)) {
    ……
    }instanceof 后面跟的必需是一个Class对象,你要使用就得遵守这个规则。
    或者,我觉得可以这样:
    String name=a.getClass().getName();
    if(name.equals(classNameStr)){
        ...
    }
    当然,可能需要加上包的名字(麻烦,还不如用上面的方法)
    :)
      

  8.   

    to beyond_xiruo(又再次无奈的离开)and  hehecafe(呵呵咖啡馆) (String A="……";
    if(a instanceof Class.forName(A)) {
    ……
    }这种代码根本就编不过,别逗了
      

  9.   

    你给的分也实在太低了,下次给这么多分,我是不会回答了:public class InstanceOfDemo{
    public static void main(String[] args) throws Exception{
    Object o = new B();
    String[] classes = {"A", "B"};
    for(int i=0;i<classes.length;i++){
    Class cls = Class.forName(classes[i]);
    if(cls.isInstance(o)){
    System.out.println("is " + classes[i]);
    }else{
    System.out.println("not A" + classes[i]);
    }
    }
    }
    }
      

  10.   

    运行看看,可能对你有帮助!
    class A{
    }
    class B{
    }public class testIns{
    public static void main(String[] arg){
    try{
    String[] classes = {"A", "B"};
    for (int i=0;i<classes.length;i++){
    System.out.println(Class.forName(classes[i]));
    }
    }catch(Exception e){
    e.printStackTrace();
    }



    }
    }