java.lang.Void 與 void的比較及使用方法介紹
void不是函數(shù),是方法的修飾符,void的意思是該方法沒(méi)有返回值,意思就是方法只會(huì)運(yùn)行方法中的語(yǔ)句,但是不返回任何東西。
java.lang.Void是一種類型。例如給Void引用賦值null。
Void nil = null;
通過(guò)Void類的代碼可以看到,Void類型不可以繼承與實(shí)例化。
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 something
return 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)后,某些場(chǎng)景下會(huì)用到Void類型。例如Future<T>用來(lái)保存結(jié)果。Future的get方法會(huì)返回結(jié)果(類型為T(mén))。
但如果操作并沒(méi)有返回值呢?這種情況下就可以用Future<Void>表示。當(dāng)調(diào)用get后結(jié)果計(jì)算完畢則返回后將會(huì)返回null。
另外Void也用于無(wú)值的Map中,例如Map<T,Void>這樣map將具Set<T>有一樣的功能。
因此當(dāng)你使用泛型時(shí)函數(shù)并不需要返回結(jié)果或某個(gè)對(duì)象不需要值時(shí)候這是可以使用java.lang.Void類型表示。
參考:
java.lava.Void與void的比較 ,
http://stackoverflow.com/questions/10839042/what-is-the-difference-between-java-lang-void-and-void
如何判斷函數(shù)返回void,
http://stackoverflow.com/questions/1924253/how-to-determine-by-reflection-if-a-method-returns-void
總結(jié)
以上就是本文關(guān)于java.lang.Void 與 void的比較及使用方法介紹的全部?jī)?nèi)容,如果您想了解更多關(guān)于 java.lang.Void的內(nèi)容,這里有一篇《java.lang.Void類源碼解析》是非常合適的,希望對(duì)您有所幫助。感興趣的朋友可以參閱:Java AtomicInteger類的使用方法詳解、淺談Java回收對(duì)象的標(biāo)記和對(duì)象的二次標(biāo)記過(guò)程等,有什么問(wèn)題可以隨時(shí)留言,大家一起交流討論。
相關(guān)文章
java線程池ThreadPoolExecutor的八種拒絕策略示例詳解
ThreadPoolExecutor是一個(gè)典型的緩存池化設(shè)計(jì)的產(chǎn)物,因?yàn)槌刈佑写笮?當(dāng)池子體積不夠承載時(shí),就涉及到拒絕策略。JDK中已預(yù)設(shè)了?4?種線程池拒絕策略,下面結(jié)合場(chǎng)景詳細(xì)聊聊這些策略的使用場(chǎng)景以及還能擴(kuò)展哪些拒絕策略2021-11-11
Java基于正則表達(dá)式實(shí)現(xiàn)的替換匹配文本功能【經(jīng)典實(shí)例】
這篇文章主要介紹了Java基于正則表達(dá)式實(shí)現(xiàn)的替換匹配文本功能,結(jié)合完整實(shí)例形式分析了java字符串正則替換操作技巧,需要的朋友可以參考下2017-04-04
Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式舉例詳解
在我們開(kāi)發(fā)項(xiàng)目過(guò)程中經(jīng)常需要定時(shí)任務(wù)來(lái)幫助我們來(lái)做一些內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
SpringBoot接收接口入?yún)⒌姆绞叫〗Y(jié)
這篇文章主要給大家介紹了SpringBoot接收接口入?yún)⒌膸追N方式,我們從調(diào)用方的視角去看待這個(gè)問(wèn)題,對(duì)調(diào)用方來(lái)說(shuō),它在調(diào)用接口時(shí)有好幾種傳參方式,下面,將會(huì)依次對(duì)這幾種參數(shù)方式進(jìn)行講解和代碼示例,需要的朋友可以參考下2024-01-01
解決Spring AOP 同類調(diào)用失效問(wèn)題
這篇文章主要介紹了解決Spring AOP 同類調(diào)用失效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08

