我来:
  public boolean isClass(Object obj){
     Class c=obj.getClass();
     return c.isArray();
  }
一切OK.

解决方案 »

  1.   


    对, instanceof Object[]肯定正确。
      

  2.   

    String sClassName = array1.getClass().getName();
    if(sClassName.substring(0,1).equals("[")){
       System.out.println("The array1 is a Array");
    }
      

  3.   

    更正instanceof Object[] 似乎不太对劲
      

  4.   

    instanceof Object[] 不能判断 int[]这种对象
      

  5.   

    同意楼上的.
    我加一种方法:
    public boolean isArray(Object arr) {
    boolean ret = true;
    try {
    //check if throw exception
    arr.length;
    } catch(Exception ex) {
    ret = false;
    }
    return ret;
    }
      

  6.   

    public class tdmBean
    {
    public boolean isClass(Object obj){
         Class c=obj.getClass();
         return c.isArray();
      }
    public static void main(String[] args)
    {
        int[] a=new int[3];
        tdmBean tdm=new tdmBean();
        boolean flag=tdm.isClass(a);
        System.out.println("FLAG:"+flag);
    }
    }FLAG:true
      

  7.   

    判断问题我已经解决了不过出现了一个新的问题,大家给看看我接收了一个N级的未知类型的数组,我需要把这个数组的所有一维数组给解析出来以一个2维的int[]为例子,我写了一个程序,想把这个数组里的所有一维数组解析出来,并计算和问题出在下面程序注释的两个地方,大家给看看import java.lang.reflect.Array;public class RRR
    {
      int[][] a={{1,2,3},{4}};
      int sum=0;
      
      public static void main(String args[])
      {
        try
        {
          RRR r=new RRR();
          r.recurse(r.a);
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
      
      public void recurse(Object arr)
      {
        if (arr.getClass().isArray())
        {
          for (int i=0;i<Array.getLength(arr);i++)
          {
            recurse(arr[i]);// 这么写不行,我不知道用什么type去cast这个arr
          }
        }
        for (int j=0;j<Array.getLength(arr);j++)
        {
          sum+=arr[i];//这么写不行,我不知道用什么type去cast这个arr
        }
        sum=0;
        System.out.println(sum);
      }
    }
      

  8.   

    我给你改编译通过了,但肯定运行不了,因为你的recurse循环运行,
    而r.a只是二维的.个中情况,自己再看吧.import java.lang.reflect.Array;public class RRR
    {
      int[][] a={{1,2,3},{4}};
      int sum=0;  public static void main(String args[])
      {
        try
        {
          RRR r=new RRR();
          r.recurse(r.a);
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }  public void recurse(Object[] arr)
      {
        if (arr.getClass().isArray())
        {
          for (int i=0;i<Array.getLength(arr);i++)
          {
            recurse((Object[])arr[i]);
          }
        }
        for (int j=0;j<Array.getLength(arr);j++)
        {
          sum+=Integer.parseInt((String)arr[j]);
        }
        sum=0;
        System.out.println(sum);
      }
    }
      

  9.   

    public void recurse(Object arr)
      {
        if (arr.getClass().isArray())
        {
          for (int i=0;i<Array.getLength(arr);i++)
          {
           try{
             if (Array.get(arr,i).getClass().isArray()) recurse(Array.get(arr,i));// &Otilde;&acirc;&Atilde;&acute;&ETH;&acute;&sup2;&raquo;&ETH;&ETH;&pound;&not;&Icirc;&Ograve;&sup2;&raquo;&Ouml;&ordf;&micro;&Agrave;&Oacute;&Atilde;&Ecirc;&sup2;&Atilde;&acute;type&Egrave;&yen;cast&Otilde;&acirc;&cedil;&ouml;arr
             else sum+=Array.getInt(arr,i);
            }catch(Exception e){}
            
          }
        }
        System.out.println(sum);
      }运行结果:6
    10
    10
      

  10.   

    java.lang.ClassCastException: [I
            at YYY.recurse(YYY.java:27)
            at YYY.main(YYY.java:13)
    无法正确的cast和我刚才停在那里不是一样啊
      

  11.   

    public void recurse(Object arr)
      {
        if (arr.getClass().isArray())
        {
          for (int i=0;i<Array.getLength(arr);i++)
          {
           try{
             if (Array.get(arr,i).getClass().isArray()) recurse(Array.get(arr,i));
             else sum+=Array.getInt(arr,i);
            }catch(Exception e){}
            
          }
        }
        System.out.println(sum);
      }运行结果:6
    10
    10
      

  12.   

    这样可能思路比较清晰一点:
    public void recurse(Object arr)
      {
        if (arr.getClass().isArray())
        {
          for (int i=0;i<Array.getLength(arr);i++)
          {
           boolean check=false;
           try{
            check=Array.get(arr,i).getClass().isArray();
           }catch(Exception e){}
             if (check) recurse(Array.get(arr,i));
             else sum+=Array.getInt(arr,i);
          }
        }
        System.out.println(sum);
      }
      

  13.   

    程序是没有问题了,不过最后一个为什么会输出0呢import java.lang.reflect.Array;public class YYY
    {
      int[][] a={{1,2,3},{4}};
      int sum=0;  public static void main(String args[])
      {
        try
        {
          YYY r=new YYY();
          r.recurse(r.a);
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }  public void recurse(Object arr)
      {
        if (arr.getClass().isArray())
        {
          for (int i=0;i<Array.getLength(arr);i++)
          {       
            if (Array.get(arr,i).getClass().isArray())
            { 
              recurse(Array.get(arr,i));
            }
            else
            {
              sum+=Array.getInt(arr,i);
            }
          }
        }
        System.out.println(sum);
        sum=0;
      }
    }
      

  14.   

    用一个变量来判断是第几层的,就像解析xml的那个程序差不多,第一层的就不打印了!