如何将带有(例如)3个元素的列表转换为3个元组?
例如,假设我有val x = List(1, 2, 3),我想将其转换为(1, 2, 3).我怎样才能做到这一点?
api有FunctionN(0-22)ProductN(1-22)TupleN(1-22)问题是:1.为什么数字是22的结尾?为什么不是21或23?2.为什么功能从0开始?但产品和元组不是?
我正在执行下面的代码片段
System.out.println(List.of(1, 2).getClass());
System.out.println(List.of(1, 2, 3).getClass());
Run Code Online (Sandbox Code Playgroud)
这段代码的输出是;
class java.util.ImmutableCollections$List2
class java.util.ImmutableCollections$ListN
Run Code Online (Sandbox Code Playgroud)
我期待java.util.ImmutableCollections$List3作为第二个语句的输出,因为有一个of()方法需要三个参数,为什么java创建ImmutableCollections$ListN但不是ImmutableCollections$List3?
编辑:这是Java-9问题.在List接口中总共有11个重载的()方法,每个方法从0到10采用可变数量的参数,第11个采用varargs来处理N列表.所以我期待前10个重载方法的List0到List10实现,但它返回带有三个参数的ListN.是的,这是实施细节,但只是想了解更多相关信息.