当前位置: 首页 > news >正文

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 }

  

转载于:https://www.cnblogs.com/pengineer/p/3723513.html

相关文章:

  • ubuntu12编译openwrt
  • Apache Tomcat/6.0.39如何配置连接mysql,JDBC:mysql-connector-java-5.1.30-bin.jar-成功连接心得...
  • CSS选择器各个浏览器兼容性大全
  • Redis调试
  • HDU 4089 Activation 概率DP
  • Android 百度地图定位(手动+自动) 安卓开发教程
  • Nagios 监控温度感应器
  • 转:第二次重置OPPO手机官网任意账户密码(秒改)
  • Django 多数据操作 router 方法
  • java设计模式_代理模式
  • Gradle 取相对路径
  • VIEW登陆故障解决办法。
  • 有规律的坚持写文章有多难?
  • log4j+commons-logging结合使用
  • java每日小算法(20)
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • FastReport在线报表设计器工作原理
  • linux学习笔记
  • MySQL用户中的%到底包不包括localhost?
  • node和express搭建代理服务器(源码)
  • PAT A1092
  • Yii源码解读-服务定位器(Service Locator)
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 讲清楚之javascript作用域
  • 排序(1):冒泡排序
  • 如何在 Tornado 中实现 Middleware
  • 入手阿里云新服务器的部署NODE
  • 使用docker-compose进行多节点部署
  • 微信小程序开发问题汇总
  • 再次简单明了总结flex布局,一看就懂...
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​用户画像从0到100的构建思路
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (03)光刻——半导体电路的绘制
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (理论篇)httpmoudle和httphandler一览
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)德国人的记事本
  • ***监测系统的构建(chkrootkit )
  • .a文件和.so文件
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .md即markdown文件的基本常用编写语法
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .net FrameWork简介,数组,枚举
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @AliasFor注解
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解