1. 程式人生 > >使用反射建立一維陣列和二維陣列

使用反射建立一維陣列和二維陣列

package com.iotek.classtype;

import java.lang.reflect.Array;

public class ReflectionArrayDemo {
  public static void main(String[] args) throws Exception {
    /*//建立一維陣列(String)
     Class<?> class1=Class.forName("java.lang.String");
     Object array=Array.newInstance(class1, 5);
     Array.set(array, 3, "ABC");
     System.out.println(Array.get(array, 3));
*/ //建立二維陣列(3行3列) int [] dimens= {3,3}; Object array=Array.newInstance(int.class, dimens); Object object=Array.get(array, 2);//獲取第三行(就是一個一維陣列) Array.setInt(object, 2,10 );//給指定陣列位置的元素賦上新值 int[][] arr=(int[][])array; System.out.println(arr[2][2]); } }

總結:

  只要用到反射,先獲得class物件

  沒有方法能獲得當前類的超類的private方法和屬性,你必須通過getSuperClass()找到超類以後再去嘗試獲得

私有的屬性和方法需要設定壓制許可權setAccessible(true)來取的訪問權,這樣會破壞封裝性  不到萬不得以儘量少用