Java 8 引入了名为"可选"的新类。引入此类基本上是为了避免 java 中的 NullPointerexception。可以解释一下吗?
可选类封装存在或不存在的可选值。 它是对象周围的包装,可用于避免 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。 您可以使用"可选"来避免此空指针异常。 让我们更改方法以返回可选对象而不是字符串。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。