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,判断数组、接口、枚举类型
//需求:打印对象的值
//分析:如果是普通对象可直接打印,如果是数组必须要先判断。
// 对数组的判断就使用到了反射技术,字节码的方法: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反射----数组操作的更多相关文章
- 【译】10. Java反射——数组
原文地址:http://tutorials.jenkov.com/java-reflection/arrays.html ======================================= ...
- 【转载】Java反射: 数组
原创链接:http://czj4451.iteye.com/blog/1479486 java.lang.reflect.Array Java反射机制通过Array类来处理数组,结合java.lang ...
- Java中数组操作 java.util.Arrays 类常用方法的使用
任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的 ...
- Java关于数组操作函数
数组排序及元素查找 sort()方法对Java数组进行排序. binarySearch() 方法来查找数组中的元素,返回该元素所在的位置. import java.util.*; public cla ...
- Java Script 数组操作
常用几种数组操作方法: concat() join() toString() pop() push() shift() unshift() slice() splice() sort() revers ...
- 【转】JAVA反射与注解
转载自:https://www.daidingkang.cc/2017/07/18/java-reflection-annotations/ 前言 现在在我们构建自己或公司的项目中,或多或少都会依赖几 ...
- Java 反射机制学习资料
Java反射——引言 Java反射——Class对象 Java反射——构造函数 Java反射——字段 Java反射——方法 Java反射——Getter和Setter Java反射——私有字段和私有方 ...
- Java 反射机制浅析
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反 ...
- Java反射——引言
Java反射——引言 原文地址:http://tutorials.jenkov.com/java-reflection/index.html *By Jakob Jenkov Java的反射机制使得它 ...
随机推荐
- Linux系统性能测试工具(一)——内存带宽测试工具mbw
本文介绍关于Linux系统(适用于centos/ubuntu等)的内存带宽测试工具-mbw.内存性能测试工具包括: 内存带宽测试工具——mbw: 内存压力测试工具——memtester: 内存综合性能 ...
- Taro -- 上传图片公用组件
Taro上传图片公用组件 子组件chooseImage //component/chooseImage/index.js import Taro, { Component } from '@taroj ...
- Linux系统Docker启动问题Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service"
在Liunx中使用Docker, 注: Liunx使用的是在虚拟机下的centOS7版本在刚开始安装Docker时没有任何错误, 但是在后续的docker启动过程中, 出现以下问题: [root@zk ...
- fiddler 手机抓包,CS端抓包 使用记录
1.允许远程连接 2.忽略https证书错误 3.设置代理 4.重启fiddle 5.PC客户端抓包分工具FIddler+Proxifer https://blog.csdn.net/sunbo_cs ...
- 为按钮绑定实现js跳转
页面代码 <button type="button" class="btn btn-xs btn-info" id="add" nam ...
- 5.Docker存储卷
一.概述 1.Docker底层存储机制 Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层. 如果运行中的容器修改了现有的一个已经存在的文件,那 ...
- 修改linux的mysql用户名和密码
MySQL数据库密码忘记之后,可以进入linux下修改原始密码,步骤为下.第一步:登陆服务器管理员权限.第二步:进入MySQL数据配置文件 [root@VM_0_8_centos ~]# vi /et ...
- Git关联JIRA的issue
指导文章 http://www.51testing.com/html/30/n-3724930.html http://{$host_url}/help/user/project/integratio ...
- 【leetcode】1073. Adding Two Negabinary Numbers
题目如下: Given two numbers arr1 and arr2 in base -2, return the result of adding them together. Each nu ...
- @ResponseBody和@RestController
Spring 关于ResponseBody注解的作用 responseBody一般是作用在方法上的,加上该注解表示该方法的返回结果直接写到Http response Body中,常用在ajax异步请求 ...