[英]How does getClass().getName() return class name of the generic type?
[英]When does getClass().getName() return void?
Class.getName()
的java文檔說:
返回 實體 (的名稱
class
,interface
,array class
,primitive 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.