首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在运行时创建任意Array类型的实例?

在Java中,可以使用反射来创建任意Array类型的实例。以下是一个示例代码:

代码语言:java
复制
import java.lang.reflect.Array;

public class ArrayCreator {
    public static void main(String[] args) {
        int size = 5;
        Class<?> componentType = Integer.class;
        Object array = Array.newInstance(componentType, size);
        System.out.println(array);
    }
}

在这个示例中,我们使用了Array.newInstance方法来创建一个新的数组实例。该方法接受两个参数:第一个参数是数组的组件类型,第二个参数是数组的大小。在这个示例中,我们创建了一个大小为5的Integer数组。

请注意,Array.newInstance方法返回的是一个Object类型的数组,因为Java不支持泛型数组。如果需要将其转换为特定类型的数组,可以使用类型转换。例如:

代码语言:java
复制
Integer[] intArray = (Integer[]) array;

在这个示例中,我们将Object类型的数组转换为Integer数组。

总之,使用反射可以在运行时创建任意Array类型的实例。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • java反射技术的案例之泛型擦除

    正确理解泛型概念的首要前提是理解类型擦除(type erasure)。 Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节代码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会被编译器在编译的时候去掉。这个过程就称为类型擦除。如在代码中定义的List<Object>和List<String>等类型,在编译之后都会变成List。JVM看到的只是List,而由泛型附加的类型信息对JVM来说是不可见的。Java编译器会在编译时尽可能的发现可能出错的地方,但是仍然无法避免在运行时刻出现类型转换异常的情况。类型擦除也是Java的泛型实现方式与C++模板机制实现方式之间的重要区别。

    01
    领券