反射---编写泛型数组代码
?java.lang.reflect包中的Array类允许动态地创建数组。为了编写通用的复制数组的代码,需要能够创建与原数组类型相同的新数组。Array类中的静态方法newInstance能够构造新数组。
?在调用的时候需要提供两个参数,一个是数组的元素类型,一个是数组的长度。
Object newArray = Array.newInstance(componentType, newLength);
?下面这个复制数组的方法可以用来扩展任意类型的数组,不仅是对象数组。为了实现上述操作,将方法的参数类型设置为Object(对象类型),而不是Object [] (对象型数组)。
【反射---编写泛型数组代码】?基本数据类型数组,例int []可以转换成Object(对象类型),但不能转换成Object [] (对象数组)。
public static Object copyOf(Object a, int newLength) {
Class cl = a.getClass();
if(!cl.isArray()) return null;
Class componentType = cl.getComponentType();
int length = Array.getLength(a);
Object newArray = Array.newInstance(componentType, newLength);
System.arraycopy(a, 0, newArray, 0, Math.min(length, newLength));
}
推荐阅读
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- 振兴中华---争做新时代的好少年
- 青春的恋习曲
- 编写字典程序
- 《将来的你,一定会感谢现在战胜烦恼的自己-------第四章/第十一节/用逆向思维解除烦恼》
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
- 无私便是最大的自私---多久没有无私过了
- 《教育心理学》读书笔记五---关注特殊群体学生|《教育心理学》读书笔记五---关注特殊群体学生 做有温度的教育
- 问题是那些问题,解决全在自己----转逆境为喜悦