面试官:说说Java中java.lang.Void和void有什么作用和区别?
點擊上方“朱小廝的博客”,選擇“設為星標”
后臺回復"加群",加入皮皮專屬交流群
來源:http://suo.im/5p28k2
void關(guān)鍵字表示函數(shù)沒有返回結(jié)果,是java中的一個關(guān)鍵字。
java.lang.Void是一種類型。例如給Void引用賦值null。
Void?nil?=?null;通過Void類的代碼可以看到,Void類型不可以繼承與實例化。
public?final class?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()?{} }Void作為函數(shù)的返回結(jié)果表示函數(shù)返回null(除了null不能返回其它類型)。
?Void?function(int?a,?int?b)?{//do?somethingreturn?null;}在泛型出現(xiàn)之前,Void一般用于反射之中。例如,下面的代碼打印返回類型為void的方法名。
public?class?Test?{public?void?print(String?v)?{}public?static?void?main(String?args[]){for(Method?method?:?Test.class.getMethods())?{if(method.getReturnType().equals(Void.TYPE))?{System.out.println(method.getName());}}} }泛型出現(xiàn)后,某些場景下會用到Void類型。例如Future<T>用來保存結(jié)果。Future的get方法會返回結(jié)果(類型為T)。
但如果操作并沒有返回值呢?這種情況下就可以用Future<Void>表示。當調(diào)用get后結(jié)果計算完畢則返回后將會返回null。
另外Void也用于無值的Map中,例如Map這樣map將具Set<T>有一樣的功能。
因此當你使用泛型時函數(shù)并不需要返回結(jié)果或某個對象不需要值時候這是可以使用java.lang.Void類型表示。
java.lava.Void與void的比較 ,
如何判斷函數(shù)返回void,
想知道更多?掃描下面的二維碼關(guān)注我
【限時推廣1】極客時間專屬優(yōu)惠碼:SIDANIUBI,使用這個優(yōu)惠碼購買極客時間的任何一門課程都可以滿40減20元,這是雙11的活動,優(yōu)惠碼有效期至11.15,認準?SIDANIUBI?
【限時推廣2】當當百萬圖書5折封頂(活動時間截止11.11)。使用我的優(yōu)惠嗎:HG9XPR,還可以享受:實付200-30
朕已閱?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的面试官:说说Java中java.lang.Void和void有什么作用和区别?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020年前必须掌握的数据库面试问题~
- 下一篇: 你知道SQL的这些错误用法吗?