本文介绍了Java中的Class.getArrayType?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用以下技巧来获取特定类的数组类型:

I use the following trick to get the array type of a specific class:

@SuppressWarnings("unchecked")
public static <T> Class<T[]> getArrayType(Class<T> componentType) {
    String arrayClassName = "[L" + componentType.getName() + ";";
    try {
        return (Class<T[]>) Class.forName(arrayClassName);
    } catch (ClassNotFoundException e) {
        throw new UnexpectedException("Can't get the array type for " + componentType, e);
    }
}

但是,有没有更优雅的方式来获得这个?

But, is there any more elegant way to get this?

推荐答案

也许使用 Array.newInstance(),它返回给定类型的数组.

Perhaps using Array.newInstance(), which returns an array of a given type.

做类似的事情:

return Array.newInstance(someClass, 0).getClass()

可能会为您带来想要的东西.

Might get you what you want.

希望有帮助.

这篇关于Java中的Class.getArrayType?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 16:26