`
jilen
  • 浏览: 96652 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于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设计的初衷

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics