1. 程式人生 > >Java陣列反射實現動態的判斷一個物件書否是陣列,並且對陣列進行拆包輸出 。。

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());  //如果是一個值的話那麼輸出
  }
 }
}