getClass().getName()什么时候返回void?

Kum*_*nav 9 java class

java文档Class.getName()说:

返回的名称实体(class,interface,array class,primitive type,或void由该表示)Class对象,作为一个String.

什么时候回来 void

Roh*_*ain 13

它将voidvoid类型的类文字提供String :

Class<Void> clazz = void.class;
System.out.println(clazz.getName());
Run Code Online (Sandbox Code Playgroud)

有关进一步阅读,请参阅JLS§15.8.2:

类文字是一个表达式,由类,接口,数组或基本类型的名称或伪类型void组成,后跟".".和令牌类.
[...]
void.class(§8.4.5)的类型是Class<Void>.


Rad*_*def 3

当它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()
        );
    }
}
Run Code Online (Sandbox Code Playgroud)