null的class是什么?
What is the class of null?
在 java 中,当我们像这样将 null 分配给任何对象时:
private Apple apple = null;
java中是否有与此null
相关的class?
因为在 Apache common-lang jar 中他们这样定义 null:
public static class Null implements Serializable {
/**
* Required for serialization support. Declare serialization compatibility with Commons Lang 1.0 * * @see java.io.Serializable
*/
private static final long serialVersionUID = 7092611880189329093L;
/**
* Restricted constructor - singleton.
*/
Null() {
super();
}
/**
* <p>Ensure singleton.</p>
*
* @return the singleton value
*/
private Object readResolve() {
return ObjectUtils.NULL;
}
}
他们为什么要这样做?
还是只是一个位模式?
在 java 中 null
不是对象,因此没有 class。
虽然它确实有一个类型 - 请参阅 the language specification。
Apache 创建了一个名为 Null
(不是 null
)的 class。这是完全不同的事情。我猜他们创建它是为了可以用实际对象表示 null
- 这可能在某些方面使编程更容易。
在 java 中,null 是关键字,而不是 class 或对象。
在 java 中,当我们像这样将 null 分配给任何对象时:
private Apple apple = null;
java中是否有与此null
相关的class?
因为在 Apache common-lang jar 中他们这样定义 null:
public static class Null implements Serializable {
/**
* Required for serialization support. Declare serialization compatibility with Commons Lang 1.0 * * @see java.io.Serializable
*/
private static final long serialVersionUID = 7092611880189329093L;
/**
* Restricted constructor - singleton.
*/
Null() {
super();
}
/**
* <p>Ensure singleton.</p>
*
* @return the singleton value
*/
private Object readResolve() {
return ObjectUtils.NULL;
}
}
他们为什么要这样做?
还是只是一个位模式?
在 java 中 null
不是对象,因此没有 class。
虽然它确实有一个类型 - 请参阅 the language specification。
Apache 创建了一个名为 Null
(不是 null
)的 class。这是完全不同的事情。我猜他们创建它是为了可以用实际对象表示 null
- 这可能在某些方面使编程更容易。
在 java 中,null 是关键字,而不是 class 或对象。