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,判断数组、接口、枚举类型

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

  

Java反射----数组操作的更多相关文章

  1. 【译】10. Java反射——数组

    原文地址:http://tutorials.jenkov.com/java-reflection/arrays.html ======================================= ...

  2. 【转载】Java反射: 数组

    原创链接:http://czj4451.iteye.com/blog/1479486 java.lang.reflect.Array Java反射机制通过Array类来处理数组,结合java.lang ...

  3. Java中数组操作 java.util.Arrays 类常用方法的使用

    任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的 ...

  4. Java关于数组操作函数

    数组排序及元素查找 sort()方法对Java数组进行排序. binarySearch() 方法来查找数组中的元素,返回该元素所在的位置. import java.util.*; public cla ...

  5. Java Script 数组操作

    常用几种数组操作方法: concat() join() toString() pop() push() shift() unshift() slice() splice() sort() revers ...

  6. 【转】JAVA反射与注解

    转载自:https://www.daidingkang.cc/2017/07/18/java-reflection-annotations/ 前言 现在在我们构建自己或公司的项目中,或多或少都会依赖几 ...

  7. Java 反射机制学习资料

    Java反射——引言 Java反射——Class对象 Java反射——构造函数 Java反射——字段 Java反射——方法 Java反射——Getter和Setter Java反射——私有字段和私有方 ...

  8. Java 反射机制浅析

    Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反 ...

  9. Java反射——引言

    Java反射——引言 原文地址:http://tutorials.jenkov.com/java-reflection/index.html *By Jakob Jenkov Java的反射机制使得它 ...

随机推荐

  1. Python在线IDE | 谷歌Colaboratory云端IDE介绍

    目录 1. 推荐阅读 2. 本文地址 3. 按 4. 使用篇 6. 教学篇 1. 推荐阅读 Python基础入门一文通 | Python2 与Python3及VSCode下载和安装.PyCharm破解 ...

  2. .net Console.ReadLine无效

    代码中出现了 Console.ReadLine无效解决办法:把应用程序的输出类型改为 控制台应用程序

  3. Java虚拟机——类加载机制

    转自:http://blog.csdn.net/ns_code/article/details/17881581 类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载 ...

  4. 采集容器内存并写到excel

    # coding=utf-8 import os import commands import re from pyExcelerator import * def execute(cmd): sta ...

  5. mv 移动或重命名文件

    1. 命令功能 mv:移动或改文件名 2. 语法格式 mv  [option]  source  dest mv 选项  源文件 目标文件 参数 参数说明 -f 如果目标文件存在,则不会询问而是直接覆 ...

  6. .h与.cpp

    本质上没什么区别. cpp:c plus plus,就表示为c++原文件. .h文件实现的功能是声明.cpp文件中需要使用的变量.函数及宏定义等. .h文件就像是一个接口,具体的实现可以在.cpp中, ...

  7. python NameError: name 'file' is not defined

    import sys import time import os poem='''\ 测试读写文件 ''' print(os.getcwd()) f=file(os.getcwd()+'/python ...

  8. SoupUI 结合loadrunner压力测试

    SoupUI 结合loadrunner压力测试 上一篇介绍了SoupUI接口测试,因为工作需要,需要在loadrunner进行websocket的压力测试,当然,SoupUI本身也是可以做性能测试的 ...

  9. Jenkins配置git/github 插件的ssh key

    参考来源:http://jingyan.baidu.com/article/a65957f4f0acc624e67f9bc1.html 方式一:本地需要生成公私钥文件,git/github中新建ssh ...

  10. 【leetcode】1091. Shortest Path in Binary Matrix

    题目如下: In an N by N square grid, each cell is either empty (0) or blocked (1). A clear path from top- ...