为什么选择最终?

时间:2018-01-14 15:14:49

标签: java optional

很明显Optional<T>必须是不可变的,并且在用户代码中对它进行子类化会有点痛苦。但无论如何,它宣布最终的原因是什么?我们无论如何都不能将它子类化,因为所有构造函数都被声明为私有。

private Optional(T value) {
    this.value = Objects.requireNonNull(value);
}

private Optional() {
    this.value = null;
}

如果没有最终的类声明,Option中的scala似乎sealed,实际上是SomeNone的子类。

我没有看到完成课程的任何理由。在private static本身内部有一些Optional子类可能很方便。

0 个答案:

没有答案