Sam*_*ard 1 java arrays reflection constants literals
获取类的类文字很容易:
String.class
Run Code Online (Sandbox Code Playgroud)
但是如何获取数组类型的类对象?
这可行,但它很难看,可能不是编译时常量:
new byte[0].getClass()
Run Code Online (Sandbox Code Playgroud)
我查看了JLS,但我发现的唯一一件事就是根据JLS定义我所谓的"类文字"不是"文字".
即使对于数组类型,您仍然可以使用类文字.编译得很好.
Class<String[]> clazz = String[].class;
Class<byte[]> clazz2 = byte[].class;
Run Code Online (Sandbox Code Playgroud)
JLS第15.8.2节规定:
甲类文字是由类,接口,的名称的表达阵列,或原语类型或伪类型
void,接着是"" 和令牌class.
(大胆强调我的)