Why does Void class exist in JDK
So the only purpose that remains for the existence of the Void class is reflection, where we can get the return type of a method as void. The following piece of code will demonstrate this purpose:
I always try to bring some thing new and useful on this blog. This time we will understand the Void.class (which in itself looks something tricky) present in rt.jar.
One can consider the java.lang.Void class as a wrapper for the keyword void.
Some developers draw the analogy with the primitive data types int, long, short and byte etc. which have the wrapper classes as Integer, Long, Short and Byte receptively. But it should be kept in mind that unlike those wrappers Void class doesn't store a value of type void in itself and hence is not a wrapper in true essence.
Purpose:
The Void class according to javadoc exists because of the fact that some time we may need to represent the void keyword as an object. But at the same point we cannot create an instance of the Void class using the new operator.
This is because the constructor in Void has been declared as private.
Moreover the Void class is a final class which means that there is no way we can inherit this class.
Moreover the Void class is a final class which means that there is no way we can inherit this class.
public class Test {
public static void main(String[] args) throws SecurityException, NoSuchMethodException {
Class c1 = Test1.class.getMethod("Testt",null).getReturnType();
System.out.println(c1 == Void.TYPE);
System.out.println(c1 == Void.class);
}
}
class Test1{
public void Testt(){}
}
One can also use Void class in Generics to specify that you don't care about the specific type of object being used. For example:
List<void> list1;
Where's the second listing?
ReplyDeleteIt's supposed to say List, but his blog interpreted the as an html tag. Not sure why you'd ever use it in a List since it would have to be all nulls in there. You'd mostly use it in a callback where you weren't expecting anything. In GWT you use it for your callbacks when the RPC function returns void.
ReplyDeleteThis is something useful you bring on the table , what would I say a good question "purpose of Void class in JDK".
ReplyDeleteThanks
Top 10 Java Serialization Interview Question
Useful information. Thanks for the share. Keep posting such a kind of post on your blog.
ReplyDelete