通过反射修改数组大小

通过反射修改数组大小

package org.lxh.demo15.classinfodemo ;
import java.lang.reflect.Array ;
public class ChangeArrayDemo{
	public static void main(String args[]) throws Exception{
		int temp[] = {1,2,3} ;// 声明一整型数组
		int newTemp[] = (int []) arrayInc(temp,5) ;	// 重新开辟空间5
		print(newTemp) ;
		System.out.println("\n-------------------------") ;
		String t[] = {"lxh","mldn","mldnjava"} ;
		String nt[] = (String [])arrayInc(t,8) ;
		print(nt) ;
	}
	public static Object arrayInc(Object obj,int len){
		Class<?> c = obj.getClass() ;
		Class<?> arr = c.getComponentType() ;	// 得到数组的
		Object newO = Array.newInstance(arr,len) ;	// 开辟新的大小
		int co = Array.getLength(obj) ;
		System.arraycopy(obj,0,newO,0,co) ;	// 拷贝内容
		return newO ;
	}
	public static void print(Object obj){	// 数组输出
		Class<?> c = obj.getClass() ;
		if(!c.isArray()){	// 判断是否是数组
			return;
		}
		Class<?> arr = c.getComponentType() ;
		System.out.println(arr.getName()+"数组的长度是:" + Array.getLength(obj)) ;	 // 输出数组信息
		for(int i=0;i<Array.getLength(obj);i++){
			System.out.print(Array.get(obj,i) + "、") ;	// 通过Array输出
		}
	}
};
运行结果:

int数组的长度是:5
1、2、3、0、0、
-------------------------
java.lang.String数组的长度是:8
lxh、mldn、mldnjava、null、null、null、null、null、



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值