自写一个任意类型数组复制的数组

自写一个任意类型数组复制的数组

  1. 需要了解到Java.lang.reflect.Aarray类中有一下一些方法:
    static get(Object array ,int index) 返回给定位子上给定数组的内容
    static set(Object array ,int index,Object newValue) 将一个新值储存到给 定位子的上的给定数据中
    int getLength() 返回数据长度
    Object newInstance(Class componentType, int Length[ ]) 返回一个给定具体类型,给定维数的的新数字
  2. -需要用到一个很经典的函数
    System.arrayCopy的源代码声明 :
    public static void arrayCopy(obj src, int srcNum, obj src2, int srcNum2, int length)
    代码解释: Object src : 原数组
    int srcPos : 从元数据的起始位置开始  
    Object dest : 目标数组   
    int destPos : 目标数组的开始起始位置  
    int length : 要copy的数组的长度

3.代码展示

public class CopyTest{
// 这是测试方法
public static void main(String [ ] args){

}

//这是自定义任意类型数组复制的方法
public static Object copyEvAarry(Object a, int  newlength){
//首先获取到a类型数组的任意字节码文件
Class a1= a.getClass();
if(!a1.isAarray()){
	return null;
}
//获取数组类型
Class a1Tpye = a1.getComponentType();
int length =Aarry.getLength(a);
Object newAarray =Array.newInstance(a1Tpye ,newLength);
System.arraycopy(a,0,newAarray,0,Math.min(length,newLength));
return newAarray;
}
}

完结:撒花,()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值