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

获取类的类文字很容易:

String.class 

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

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

 new byte[0].getClass() 

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

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

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

JLS第15.8.2节规定:

类文字是一个表达式,由类,接口, 数组或基本类型的名称或伪类型void ,后跟“。”。 和令牌class

(大胆强调我的)

你可以简单地输入

 Class clazz = byte[].class;