java.lang.Void类源码解析

网友投稿 252 2023-03-27


java.lang.Void类源码解析

在一次源码查看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 TYPE = (Class) 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类可能本身作用zJLjzlJXp就只是不起任何作用,但是本身只是一个占位符类。即Void类本身只是一个占位符类,不能被实例化,多用于泛型中作占位符使用。

总结

以上就是本文关于java.lang.Void类源码解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:RateLimiter 源码分析、基于ZooKeeper实现队列源码、Spring SpringMVC在启动完成后执行方法源码解析等,有什么问题可以随时留言,会及时回复大家的。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于Spring@Autowired注解与自动装配详谈
下一篇:springboot扫描自定义的servlet和filter代码详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~