在Java 9中,在List接口下,有一个新的方法(),根据Java文档:
List.of()静态工厂方法提供了一种方便的方法 创建不可变列表。
他们使用多达10个参数和一个vararg参数重载了()。 当它们提供一个vararg参数重载方法时,用10个参数重载()的原因是什么呢?
答案 0 :(得分:1)
这是出于性能原因。
首先,将空,一个元素和两个元素列表实现为专用类,它们没有嵌套对象。因此,构建它们是最快的(只涉及一个分配)。
对于更高级别的设备,接口设计人员可能希望保持他们的选择,以便可能实现更多"固定arity"列表类(虽然他们还没有遵循这条路线)。
事实上,"更高的arity"重载被包裹回" varargs"列表构造函数。