Java語(yǔ)言中,Optional和Object是兩個(gè)非常重要的概念。Optional可以為了解決空指針問(wèn)題而生。而Object則是Java中所有類的基類,它提供了一些通用的方法和屬性。
public class Example { public static void main(String[] args) { Object obj = null; System.out.println(obj.toString()); // NullPointerException } }
上述代碼中,我們故意將obj賦值為null,然后調(diào)用它的toString()方法,這時(shí)候程序會(huì)拋出一個(gè)NullPointerException異常,原因就是因?yàn)閛bj為null,所以不能調(diào)用它的方法,這樣的代碼很容易出現(xiàn)在程序中,所以要解決這個(gè)問(wèn)題就需要用到Optional。
public class Example { public static void main(String[] args) { Optional
上述代碼中,我們使用了Optional.ofNullable()方法來(lái)創(chuàng)建一個(gè)Optional對(duì)象,這個(gè)方法接受一個(gè)參數(shù),如果這個(gè)參數(shù)為null,那么就返回一個(gè)空的Optional對(duì)象,否則返回包含這個(gè)參數(shù)的Optional對(duì)象。這樣我們調(diào)用opt的toString()方法的時(shí)候就不會(huì)拋出NullPointerException了,而是返回一個(gè)表示空值的Optional對(duì)象。
總之,使用Optional可以極大地減少空指針異常的發(fā)生,提高程序的健壯性。而Object則是Java語(yǔ)言中非常基礎(chǔ)的概念,所有的類都是它的子類,認(rèn)真學(xué)習(xí)并理解這兩個(gè)概念對(duì)我們理解Java語(yǔ)言的精髓非常有幫助。