您好,登錄后才能下訂單哦!
在一次源碼查看ThreadGroup的時候,看到一段代碼,為以下:
/* * @throws NullPointerException if the parent argument is {@code null} * @throws SecurityException if the current thread cannot create a * thread in the specified thread group. */ private static Void checkParentAccess(ThreadGroup parent) { parent.checkAccess(); return null; }
這個方法用于檢查parent訪問權限,然后直接返回null,方法的返回類型為Void原以為Void類為void類的包裝類,但是查看Void類的
源碼后發現并不是如此,Void類的源碼如下:
/** * The {@code Void} class is an uninstantiable placeholder class to hold a * reference to the {@code Class} object representing the Java keyword * void. * * @author unascribed * @since JDK1.1 */ public final class Void { /** * The {@code Class} object representing the pseudo-type corresponding to * the keyword {@code void}. */ @SuppressWarnings("unchecked") public static final Class<Void> TYPE = (Class<Void>) Class.getPrimitiveClass("void"); /* * The Void class cannot be instantiated. */ private Void() {} }
在最上面的注釋中,描述的是
The {@code Void} class is an uninstantiable placeholder class to hold a * reference to the {@code Class} object representing the Java keyword
這段話的意思就是Void類是一個不可實例化的占位符類,它持有對標識Java關鍵字void的Class對象的引用。
并且本身的構造函數為private,并且注明:
public final class Void {}
final表明這個類是不允許被其他類繼承的。
/* * The Void class cannot be instantiated. */
即該類是不可以實例化的。
Void類可能本身作用就只是不起任何作用,但是本身只是一個占位符類。即Void類本身只是一個占位符類,不能被實例化,多用于泛型中作占位符使用。
總結
以上就是本文關于java.lang.Void類源碼解析的全部內容,希望對大家有所幫助。感興趣的朋友可以參閱:RateLimiter 源碼分析、基于ZooKeeper實現隊列源碼、Spring SpringMVC在啟動完成后執行方法源碼解析等,有什么問題可以隨時留言,小編會及時回復大家的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。