0010JDK源码分析之诡异的Void类型
Posted Java框架源码分析
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0010JDK源码分析之诡异的Void类型相关的知识,希望对你有一定的参考价值。
本文将介绍Void类,Void类是void的包装类,持有void的Class对象引用。同时,介绍一个编程的小技巧,用于强化类的不可实例化。
本文大纲:
一、Void类的介绍
二、Void类的应用
三、总结
一、Void类的介绍
Void是一个不可实例化的final类,私有的构造器更是强化了其单例属性,只保存了一个void的Class实例应用TYPE。Void也是原生类型的一种,但是和int、long这些有些不一样,这也是其之所以诡异的原因,很少场合看到Void的出现。补充一点,对于工具类,最好也是类似Void这样声明为final,并且私有构造器,强调该类不可实例化。Void的源码如下:
二、Void类的应用
Void是一个占位符,多用于泛型,但是还有其他用途,比如用于方法的参数,ClassLoader类的构造器就使用了Void作为参数。在这种情况下,更多的是提高代码的可阅读性,第一次看到可能让人迷糊,结合ClassLoader的实例创建场景,其实是合理的。因为ClassLoader是由安全管理器SecurityManager来创建的,所以构造有父级类加载器ClassLoader实例时必须先调用checkCreateClassLoader()方法,在设置父级类加载器(双亲委派机制)。代码如下:
三、总结
揭开了Void的神秘面纱,学习了一个编程技巧(声明类为final,私有构造器强化类的不可实例化),同时,也了解到Void主要起到占位符的作用,在一些方法参数中可以使用,即使场景很少,大多用于泛型。
感谢您的阅读,谢谢!
以上是关于0010JDK源码分析之诡异的Void类型的主要内容,如果未能解决你的问题,请参考以下文章