天天看點

Java數組反射實作動态的判斷一個對象書否是數組,并且對數組進行拆包輸出 。。

package me.test;

import java.lang.reflect.Array;

public class ArrayReflect {

 public static void main(String []args)

 {

  //數組的幾種聲明方法 

  String[]  a=new String[]{"aaa","bbb","ccc"}  ;

  String[]  s={"fds","fds","fds"};

  int[]     b=new int[]{1,2,3,4}; 

  int[]     d={1,2,4,5,6,7};

  Object[]  comPlex={1,"fds",56,'d'} ;  //輸出不同類型的對象數組

  showReflect(comPlex);

}

 public static  void showReflect(Object obj)      //反射數組對象 注意 這裡我們是對數組對象進行拆包     

 {                                                  //數組對應的是Array類

  Class  cls=obj.getClass() ;//獲得obj對應的位元組碼 類型

  if(cls.isArray())   //通過位元組碼判斷是否是 Array類型

  {

  int length=Array.getLength(obj) ;//如果是數組 那麼擷取數組的長度

  for(int i=0;i<length;i++)   //  進行循環

   System.out.println(Array.get(obj, i));  //通過Array類靜态方法根據指定的索引輸出

  }

  else

   System.out.println(obj.toString());  //如果是一個值的話那麼輸出

 }