Java getClass().getName()何时返回void?
Java getClass().getName()何时返回void?,java,class,Java,Class,Class.getName()的java文档说明: 返回该类对象所表示的实体的名称(类,接口,数组类,基元类型,或无效) 它将于何时返回作废 它将为void类型的类文本提供void字符串: Class<Void> clazz = void.class; System.out.println(clazz.getName()); Class clazz=void.Class; System.out.println(clazz.getName()); 请参阅进一步阅读: 类文字是由类的
Class.getName()
的java文档说明:
返回该类
对象所表示的实体的名称(类
,接口
,数组类
,基元类型
,或无效
)
它将于何时返回
作废
它将为void
类型的类文本提供void
字符串:
Class<Void> clazz = void.class;
System.out.println(clazz.getName());
Class clazz=void.Class;
System.out.println(clazz.getName());
请参阅进一步阅读:
类文字是由类的名称组成的表达式,
接口、数组或基元类型,或后面的伪类型void
通过“.”和令牌类执行。[…]
void.class(§8.4.5)的类型为
class
嗯,好问题。我建议你看一下源代码,因为它是开源的。当givenClass的类型为java.lang.void时,我会说它返回void。当它的
void.class
表示void
时void
本身不是一个类型,但需要一个类来表示它的某些内容
例如:
class VoidExample {
public static void main(String[] args) throws Exception {
System.out.println(
VoidExample.class
.getMethod("main", String[].class)
.getReturnType().getName()
);
}
}
我检查了,但不幸的是
GetName()
是一个本机方法,因此您必须深入挖掘才能找到确切的情况。但是我怀疑,如果你调用一个返回void
的方法,你会看到一个实际的例子,void是一个不可实例化的占位符类,用来保存void.class类型,void.type
。我一直在搜索JLS,有趣的是,很少提到void。除了你包含的部分(我没有找到),我什么也找不到。@Radiodef有时只是你找到了正确的主题。就这样。我以前去过那里,所以我知道确切的主题;)现在我也是P“伪类型”是我一直在寻找的东西。谢谢