java利用反射扩展任意数组的方法

简介: java利用反射扩展任意数组的方法

java利用反射扩展任意数组的方法

package com.company;
import java.lang.reflect.Array;
import java.util.Arrays;
/**
 * java利用反射扩展任意数组的方法
 */
public class TestReflect {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        int[] o = (int[]) exprendArrayLength(arr, 8);
        System.out.println(Arrays.toString(o));
    }
    public static Object exprendArrayLength(Object a, int newLength){
        Class<?> aClass = a.getClass();
        if(!aClass.isArray()){
            return  null;
        }
        Class<?> componentType = aClass.getComponentType();
        int length = Array.getLength(a);
        Object newArray = Array.newInstance(componentType, newLength);
        System.arraycopy(a,0,newArray,0,Math.min(length,newLength));
        return newArray;
    }
}

运行结果:

1dc618a0ed9580ce8bfa6facb208c08f.png

相关文章
|
3天前
|
开发框架 Java Android开发
Java中的类反射与动态代理详解
Java中的类反射与动态代理详解
java.lang.NullPointerExceptionMybatisPlus出现,测试,java.lang.NullPointe,空指针异常,public方法少写了一个字段,没加注解
java.lang.NullPointerExceptionMybatisPlus出现,测试,java.lang.NullPointe,空指针异常,public方法少写了一个字段,没加注解
|
4天前
|
消息中间件 NoSQL Java
使用Java构建可扩展的微服务架构
使用Java构建可扩展的微服务架构
|
4天前
|
安全 Java 测试技术
Java中的反射与元编程技术探秘
Java中的反射与元编程技术探秘
|
4天前
|
算法 Java 数据处理
解决Java中堆栈溢出错误的方法
解决Java中堆栈溢出错误的方法
|
5天前
|
缓存 Java 测试技术
Java中的反射机制及其应用场景
Java中的反射机制及其应用场景
|
3天前
|
Java 数据处理 数据库
Java中equalsIgnoreCase方法的应用
Java中equalsIgnoreCase方法的应用
|
3天前
|
存储 Java 程序员
Java中的国际化与本地化实现方法
Java中的国际化与本地化实现方法
|
3天前
|
消息中间件 缓存 Java
使用Java构建可扩展和可维护的大规模系统的关键技术
使用Java构建可扩展和可维护的大规模系统的关键技术
|
3天前
|
消息中间件 负载均衡 监控
如何在Java中实现可扩展的消息传递系统
如何在Java中实现可扩展的消息传递系统