【发布时间】:2015-02-03 19:19:48
【问题描述】:
获取类的类字面量很容易:
String.class
但是我怎样才能得到一个数组类型的类对象呢?
这可行,但很难看,而且可能不是编译时间常数:
new byte[0].getClass()
我查看了 JLS,但唯一发现的是,根据 JLS 的定义,我所说的“类文字”不是“文字”。
【问题讨论】:
标签: java arrays reflection constants literals
获取类的类字面量很容易:
String.class
但是我怎样才能得到一个数组类型的类对象呢?
这可行,但很难看,而且可能不是编译时间常数:
new byte[0].getClass()
我查看了 JLS,但唯一发现的是,根据 JLS 的定义,我所说的“类文字”不是“文字”。
【问题讨论】:
标签: java arrays reflection constants literals
你仍然可以使用类文字,即使是数组类型。这样编译就好了。
Class<String[]> clazz = String[].class;
Class<byte[]> clazz2 = byte[].class;
类文字是一个表达式,由类、接口、数组或原始类型或伪类型
void的名称组成,后跟一个 '。'和令牌class。
(我的粗体强调)
【讨论】:
你可以直接输入
Class<?> clazz = byte[].class;
【讨论】: