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

  • 相关阅读:
    MFC菜单快捷键的应用
    TDD in C++
    Mapping
    初入股市者怎样看盘
    C++随笔分类列表(高级)
    C++代码优化
    IT生活
    十一年炒股的感悟
    框架设计(第2版)CLR Via C#(1)
    Visual Assist X自己常用的快捷功能
  • 原文地址:https://www.cnblogs.com/tanlei-sxs/p/9998679.html
Copyright © 2011-2022 走看看