java.lang.Void and void

java.lang.Void is analogous to java.lang.IntegerInteger is a way of boxing values of the primitive type intVoid is a way of boxing values of the primitive type void.

"But wait, void doesn‘t have any possible values!"

Right! That‘s what makes java.lang.Void "uninstantiable". :)

It‘s a nice feature of the Java type system that every primitive type has a boxed equivalent. inthas Integerlong has Longbyte has Byte... and void has Void. It would be weird and asymmetrical if Void didn‘t exist.

"So what‘s the difference between java.lang.Void and void?"

Easy. void is a primitive type. Void is an reference type that inherits from Object. They‘re similar in that neither of them has any possible values; but nevertheless they are two very different types, from the type system‘s point of view.

"But I don‘t have any use for Void in my programs."

And I don‘t have any use for GarbageCollectorMXBean in mine. Some features don‘t have non-obscure uses. That‘s okay.

The only point of Void is to hold Void.TYPE, which is sort of like void.class. If you have a reflective reference to a method that returns void, and you get its return type, it‘ll return Void.TYPE.

时间: 2024-10-13 11:04:37

java.lang.Void and void的相关文章

利用泛型抽取Dao层,加事务注解问题(java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType)

想利用泛型抽取BaseDao层,简化操作时出现问题: @Transactional这个注解是可以继承的,于是就想写在抽取的BaseDao层上,让实现的类可以不用写@Transactional,就可开启事务. 问题描述: 由于偷懒,没给BaseDao抽接口,代码如下: package com.liang.ssh2.base; import java.lang.reflect.ParameterizedType; import java.util.Collections; import java.u

java.lang.NullPointerException: Attempt to invoke virtual method 'void 、Handler.removeMessages(int)' on a null object reference

onDestory进行释放Handler时,需要判断null if(null != mHandler) { mHandler.removeMessages(MSG_CHANGE_TEXT_COLOR); mHandler.removeMessages(MSG_JUMP_TO_SUCCESS_PAGE); mHandler.removeMessages(MSG_PLAY_LITTLE_PEOPLE_ANIMATION); mHandler.removeMessages(MSG_PLAY_WRONG

ava中java.lang.Void类小记

软件151,牟俊 在阅读JDK源代码的时候发现了有Void这么个类,Void类是一个不可实例化的占位符类,它持有对标识Java关键字void的Class对象的引用. Void的类定义如下: package java.lang;public final class Void { private Void() { } public static final Class TYPE = Class.getPrimitiveClass("void");}我是在看ThreadGroup类的源码时发

java.lang.Void类源码解析_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 在一次源码查看ThreadGroup的时候,看到一段代码,为以下: /* * @throws NullPointerException if the parent argument is {@code null} * @throws SecurityException if the current thread cannot create a * thread in the specified thread grou

JAVA:从public static void main(String args[])開始

我们都知道当你要执行一个JAVA文件的时候必需要有一个main函数. 这是为什么呢? 跟C语言的道理一样,当你执行一个文件的时候.你必需要有一个入口函数或者入口地址,在C里面是main函数.相同的在JAVA里面则是public static void main(String args[])这样一个入口函数.这是java程序的入口地址,java虚拟机执行程序的时候首先找的就是main方法.跟C语言里面的main()函数的作用是一样的.仅仅有有main()方法的java程序才可以被java虚拟机欲行

JAVA:从public static void main(String args[])开始

我们都知道当你要运行一个JAVA文件的时候必须要有一个main函数.这是为什么呢? 跟C语言的道理一样,当你运行一个文件的时候,你必须要有一个入口函数或者入口地址,在C里面是main函数,同样的在JAVA里面则是public static void main(String args[])这样一个入口函数.这是java程序的入口地址,java虚拟机运行程序的时候首先找的就是main方法.跟C语言里面的main()函数的作用是一样的.只有有main()方法的java程序才能够被java虚拟机欲行,可

java中 构造器与void

在java中,构造器与void都没有返回值, java编程思想中这么解释构造器的: 构建器属于一种较特殊的方法类型,因为它没有返回值.这与 void 返回值存在着明显的区别.对于void 返回值,尽管方法本身不会自动返回什么,但仍然可以让它返回另一些东西.构建器则不同,它不仅什么也不会自动返回,而且根本不能有任何选择.若存在一个返回值,而且假设我们可以自行选择返回内容,那么编译器多少要知道如何对那个返回值作什么样的处理. 自己运行的例子: public class SimpleConstruct

在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法

今天遇到了一个在servlet的service方法中获取ServletContext对象出现java.lang.NullPointerException(空指针)异常,代码如下: 1 //获取ServletContext对象 2 ServletContext servletContext = this.getServletContext(); 这个问题很奇怪,也是第一次遇到,因为以前在servlet的doGet/doPost方法中要获取ServletContext对象时都是这样写的,也没有出现过

如何使用java.lang.String.contains()方法

实例 package com.yiibai; import java.lang.*; public class StringDemo { public static void main(String[] args) { String str1 = "tutorials point", str2 = "http://"; CharSequence cs1 = "int"; // string contains the specified seque