zoukankan      html  css  js  c++  java
  • 使用反射创建一维数组和二维数组

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

  • 相关阅读:
    d
    今天刚注册,测试下
    关于Hadoop的简单介绍
    leveldb 阅读笔记 (2) 简易测试框架
    leveldb 阅读笔记(1) 内存分配器 Arena
    数论
    伴随网站
    convenience website
    大佬独特的骗分技巧
    动态规划
  • 原文地址:https://www.cnblogs.com/tanlei-sxs/p/9998679.html
Copyright © 2011-2022 走看看