Java获取数组组件类型及Array API简单示例
2017-11-01 17:07
323 查看
Java获取数组组件类型及Array API简单示例
最近写一个转换工具,用到了获取数组组件类型的API以及Array的API,这里记录一笔。一、关键API
Class<?>Class.getComponentType();// 获取组件类型
Array
Array.newInstance(Class<?> componentType, int length);// 创建一个数组实例
二、代码示例
import java.lang.reflect.Array; import java.lang.reflect.Field; import java.util.Arrays; public class ArrayTest { public static void main(String[] args) throws Exception { String[] arrayStr = new String[0]; /** * 获取数组变量的组件类型 */ System.out.println(getComponentType(arrayStr.getClass()));// class java.lang.String /** * 获取数组属性的组件类型 */ // 获取array属性对象 Field arrayField = Entity.class.getDeclaredField("array"); Class<?> componentType = getComponentType(arrayField.getType()); System.out.println(componentType);// int /** * 根据获取到的组件类型,创建一个array对象并赋值 */ // 创建一个长度等于2的数组 Object array = Array.newInstance(componentType, 2); // 赋值 Array.set(array, 0, 1); Array.set(array, 1, 2); System.out.println(Array.get(array, 1));// 1 /** * 创建一个Entity对象,把上面通过Array.newInstance创建的数组对象填充到array属性上 */ Entity e = new Entity(); arrayField.setAccessible(true); arrayField.set(e, array); System.out.println(e);// Entity [array=[1, 2]] } public static Class<?> getComponentType(Class<?> arrayClass) { return arrayClass.getComponentType(); } } class Entity { private Integer[] array; public Integer[] getArray() { return array; } public void setArray(Integer[] array) { this.array = array; } @Override public String toString() { return "Entity [array=" + Arrays.toString(array) + "]"; } }
相关文章推荐
- Java 基础 byte[]与各种数据类型互相转换的简单示例
- Java有N个数字的int类型数组,如何获取数量最多并且数字最大的数以及数量
- java 获取数组元素类型的class对象
- java反射遍历实体类属性和类型,并赋值和获取值的简单方法
- java获取redis中各种数据类型key对应的value代码简单封装
- Java简单实现调用命令行并获取执行结果示例
- Java XML解析,,Node直接转为对象。考虑了一般的类,简单类型,数组,还未考虑List,Map
- Java实现判断浏览器版本与类型简单代码示例
- QTP利用原生态对象获取JavaTable列排序类型示例
- Java调用存储过程(返回:简单类型、自定义对象、列表数组)
- java学习-JAVA基本排序法示例,JAVA数据类型转换 ,ArrayList用法,Calendar 简单应用
- java 文件上传 与 把文件解析成一个字节数组简单的后台示例
- java获取redis中各种数据类型key对应的value代码简单封装
- java反射遍历实体类属性和类型,并赋值和获取值的简单方法
- Java Swing组件文件选择器JFileChooser简单用法示例
- java UDPSocket 简单示例2:将long类型发送并接收
- Java基础小知识——基本数据类型和字符串以及字节数组的转换
- java中参数(对象与简单类型)的区别
- java连接ACCESS数据库的简单示例
- [导入]【原】C#里获取客户端IP,端口号的简单示例