关于java里的null

来源:转载



null 很难定义是什么?

首先它肯定不是基本类型,因为

int a = null;

这样的表达式是不能编译通过的。

虽然

Object foo = null;

可以轻松通过编译,但不能证明null是某个引用类型的实例

因为我们找不到任何对象类型,即使基本类型,也可以得到类型,甚至void也是。

但jdk中找不到任何类型可以说明null是什么。


null有个很明显的特征,可以赋值给任何类型的引用,看起来好像,null可以是一个任意引用类型的实例

但jdk中不存在一个类型是任意引用类型的子类型。


null之所以创造出来是为了让引用有个默认值,基本类型,可以默认为0,false,等,引用类型呢?只能创造出这么一个怪异的null,作为引用的初始值,就像0。
对象初始状态是无,这个状态被表达为null。

所以其实null是一个无奈产物。但我想它并不是表达某个事物是否存在,

那才是guava的optional设计的初衷


分享给朋友:
您可能感兴趣的文章:
随机阅读: