首页 > 开发 > Java > 正文

java.lang.Void类源码解析

2024-07-13 10:12:42
字体:
来源:转载
供稿:网友

 在一次源码查看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 finalclass 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类源码解析的全部内容,希望对大家有所帮助。有什么问题可以随时留言,小编会及时回复大家的。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表