获取数组类型的Class对象的最佳方法是什么?

时间:2015-02-03 19:19:49

标签: java arrays reflection constants literals

为类获取类文字很容易:

String.class

但是如何获得数组类型的类对象?

这有效,但它很难看,可能不是编译时常量:

new byte[0].getClass()

我查看了JLS,但我发现的唯一一件事就是根据JLS定义,我称之为“类文字”并不是“文字”。

2 个答案:

答案 0 :(得分:5)

即使对于数组类型,您仍然可以使用类文字。编译得很好。

Class<String[]> clazz = String[].class;
Class<byte[]> clazz2 = byte[].class;

Section 15.8.2 of the JLS州:

  

类文字是一个表达式,由类的名称,接口,数组或基本类型或伪类型void组成,然后是&#39;。&#39;和令牌class

(大胆强调我的)

答案 1 :(得分:3)

您只需输入

即可
Class<?> clazz = byte[].class;