使用反射创建一维数组和二维数组

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)来取的访问权,这样会破坏封装性  不到万不得以尽量少用

 

转载于:https://www.cnblogs.com/tanlei-sxs/p/9998679.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值