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 }

      

  • 相关阅读:
    阿衣楚往事
    加速计算机启动
    此一生,与谁相逢v
    关于cmd代码
    关于POJO
    ERP,SOA与J2EE什么关系
    QoBean技术文档(1):QoBean的基础技术
    ed 1.7 支持60种编程语言的免费编辑器
    面试必问的16个经典问题的回答思路
    Java 多线程间的通讯
  • 原文地址:https://www.cnblogs.com/pengineer/p/3723513.html
Copyright © 2011-2022 走看看