簡體   English   中英

getClass()。getName()什么時候返回void?

[英]When does getClass().getName() return void?

Class.getName()的java文檔說:

返回 實體 (的名稱classinterfacearray classprimitive type ,或者void由此表示) Class對象,作為一個String

何時返回 void

對於void類型,它將為類文字提供void String:

Class<Void> clazz = void.class;
System.out.println(clazz.getName());

有關進一步閱讀,請參閱JLS§15.8.2

類文字是一個表達式,由類,接口,數組或基本類型的名稱或偽類型void組成,后跟“。”。 和令牌類。
[...]
void.class(§8.4.5)的類型是Class<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()
        );
    }
}

嗯好問題。 因為它是開源的,所以建議看一下源代碼。 我會說當givenClass的類型為java.lang.Void時它返回void。

我檢查了OpenJDK源代碼 ,但遺憾的是GetName()是一種原生方法,所以你必須深入挖掘才能找到確切的案例。 但我懷疑,如果你在返回void的方法上調用getReturnType() ,那么當你看到這個時會有一個實際的例子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM