什麼是可選的?為什麼以及如何使用它?

阿裏雲問答 2022-01-08 01:21:14 阅读数:738

使用 用它

Java 8 引入了名為"可選"的新類。引入此類基本上是為了避免 java 中的 NullPointerexception。可以解釋一下嗎?




采納答案1:

可選類封裝存在或不存在的可選值。 它是對象周圍的包裝,可用於避免 NullPointerException。 讓我們舉一個簡單的例子

public static Character getNonRepeatedCharacter(String str) { Map<Character, Integer> countCharacters = new LinkedHashMap<Character, Integer>(); for (int i = 0; i < str.length() - 1; i++) { Character c = str.charAt(i); if (!countCharacters.containsKey(c)) { countCharacters.put(c, 1); } else { countCharacters.put(c, countCharacters.get(c) + 1); } } // As LinkedHashMap maintains insertion order, first character with // count 1 should return first non repeated character for (Entry<Character, Integer> e : countCharacters.entrySet()) { if (e.getValue() == 1) return e.getKey();

 } return null; }

您調用上述方法如下。

Character c=getNonRepeatedCharacter("SASAS");System.out.println("Non repeated character is :"+c.toString());

你看到問題,沒有非重複字符getNon重複字符("SASAS"),因此它將返回null,我們調用c.toString,所以它顯然將拋出NullPointerexception。 您可以使用"可選"來避免此空指針异常。 讓我們更改方法以返回可選對象而不是字符串。


版权声明:本文为[阿裏雲問答]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201080121144746.html