NullPointException

[Scala] 用 Option[T] 来避免 NullPointerException(整理)

佐手、 提交于 2019-12-05 01:20:53
前言 Java 里的 Null Pointer Exception 写过一阵子的Java后, 应该会对NullPointerException (NPE)这种东西很熟悉,基本上会碰到这种异常,就是你有一个变量是 null,但你却调用了它的方法,或是取某个的值。 举例而言,下面的 Java 代码就会抛出NPE异常: 例1: String s1 = null; System.out.println("length:" + s1.length()); 当然,一般来说,我们很少会写出这么明显的错误代码。 但另一方,在 Java 的使用习惯说,我们常常以「返回 null」这件事,来代表一个函数的返回值是不是有意义。 例2: //就是在 Java 里 HashMap 的 get() 方法,如果找不到对应的 key 值,就会反回 null: HashMap<String, String> myMap = new HashMap<String, String>(); myMap.put("key1", "value1"); String value1 = myMap.get("key1"); // 返回 "value1" String value2 = myMap.get("key2"); // 返回 null System.out.println(value1.length()); // 没问题