获取数组类型的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;