在 Go 中,可以在空指针上调用方法,只要该指针永远不会被取消引用:
type empty struct{}
func (e *empty) Allocated() bool { return e != nil }
(对于可运行的代码,请单击此处)
然而,在 Java 中,在空指针上调用方法,即使该方法从不取消对任何成员变量的引用,仍然会导致空指针异常:
class Test {
public boolean Allocated() { return this != null; }
}
有人知道为什么存在这种行为吗?它有什么好处吗?想法?
人到中年有点甜
MM们
相关分类