zoukankan      html  css  js  c++  java
  • Java反射----数组操作

    1,获取数组字段

      在Person类中定义了一个一维数组字段:int[] a1 = new int[]{1,2,3};

      如何通过反射技术来操作该字段?

      补充:Java操作数组主要用的是Array类。  

    @Test
    public void reflectDemo3_2() throws Exception{
      //Person p = new Person();
      Class clazz = Class.forName("edu.whut.reflect.Person");
      Field f = clazz.getField("a1");//f仅仅是字段对象,通过对象的方法获取值
      Object value = f.get(clazz.newInstance());//数组的父类都是Object
      Class type = f.getType();
      if(type == int[].class){
    	System.out.println(value);
    	int len = Array.getLength(value);
    	int num = Array.getInt(value, 0);
    	System.out.println(len+","+num);
      }
    }
    

      

    2,判断数组、接口、枚举类型

     1 //需求:打印对象的值
     2 //分析:如果是普通对象可直接打印,如果是数组必须要先判断。
     3 //    对数组的判断就使用到了反射技术,字节码的方法:Class.isArray();
     4 //     对接口,枚举的判断也用该方法。
     5 public static void printObject(Object obj) {
     6   Class cls = obj.getClass();
     7   if(cls.isArray()){
     8       int len = Array.getLength(obj);
     9     int num = Array.getInt(obj, 0);
    10     System.out.println(len+","+num);
    11   }
    12   else
    13     System.out.println(obj);
    14 }

      

  • 相关阅读:
    socket 中文man页面函数
    指针和数组(上)
    char和unsigned char--数据类型区别
    自己的总结
    warning C4305:“初始化”:从“double”到“float”截断
    指针数组和数组指针区别
    Python模块常用的几种安装方式
    Jenkins环境搭建
    wxPython:事件
    wx.ListCtrl简单使用例子
  • 原文地址:https://www.cnblogs.com/pengineer/p/3723513.html
Copyright © 2011-2022 走看看