java.lang.Void 与 void的比较及使用方法介绍
void不是函数,是方法的修饰符,void的意思是该方法没有返回值,意思就是方法只会运行方法中的语句,但是不返回任何东西。
java.lang.Void是一种类型。例如给Void引用赋值null。
Voidnil=null;
通过Void类的代码可以看到,Void类型不可以继承与实例化。
publicfinal classVoid{ /** *The{@codeClass}objectrepresentingthepseudo-typecorrespondingto *thekeyword{@codevoid}. */ @SuppressWarnings("unchecked") publicstaticfinalClassTYPE=(Class )Class.getPrimitiveClass("void"); /* *TheVoidclasscannotbeinstantiated. */ privateVoid(){} }
Void作为函数的返回结果表示函数返回null(除了null不能返回其它类型)。
Voidfunction(inta,intb){ //dosomething returnnull; }
在泛型出现之前,Void一般用于反射之中。例如,下面的代码打印返回类型为void的方法名。
publicclassTest{ publicvoidprint(Stringv){} publicstaticvoidmain(Stringargs[]){ for(Methodmethod:Test.class.getMethods()){ if(method.getReturnType().equals(Void.TYPE)){ System.out.println(method.getName()); } } } }
泛型出现后,某些场景下会用到Void类型。例如Future
但如果操作并没有返回值呢?这种情况下就可以用Future
另外Void也用于无值的Map中,例如Map
因此当你使用泛型时函数并不需要返回结果或某个对象不需要值时候这是可以使用java.lang.Void类型表示。
参考:
java.lava.Void与void的比较,
http://stackoverflow.com/questions/10839042/what-is-the-difference-between-java-lang-void-and-void
如何判断函数返回void,
http://stackoverflow.com/questions/1924253/how-to-determine-by-reflection-if-a-method-returns-void
总结
以上就是本文关于java.lang.Void与void的比较及使用方法介绍的全部内容,如果您想了解更多关于java.lang.Void的内容,这里有一篇《java.lang.Void类源码解析》是非常合适的,希望对您有所帮助。感兴趣的朋友可以参阅:JavaAtomicInteger类的使用方法详解、浅谈Java回收对象的标记和对象的二次标记过程等,有什么问题可以随时留言,大家一起交流讨论。