gpt4 book ai didi

java - 带数组构造函数的引用方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:11:29 25 4
gpt4 key购买 nike

<分区>

在以下示例中,我尝试使用带有表达式 ArrayType[]::new 的引用方法:

public class Main
{
public static void main(String[] args)
{
test1(3,A[]::new);
test2(x -> new A[] { new A(), new A(), new A() });

test3(A::new);
}

static void test1(int size, IntFunction<A[]> s)
{
System.out.println(Arrays.toString(s.apply(size)));
}

static void test2(IntFunction<A[]> s)
{
System.out.println(Arrays.toString(s.apply(3)));
}

static void test3(Supplier<A> s)
{
System.out.println(s.get());
}
}

class A
{
static int count = 0;
int value = 0;

A()
{
value = count++;
}

public String toString()
{
return Integer.toString(value);
}
}

输出

[null, null, null]
[0, 1, 2]
3

但是我在方法 test1 中得到的只是一个包含空元素的数组,表达式 ArrayType[]::new 不应该创建一个具有指定大小的数组吗并为每个元素调用类 A 的构造,就像在方法 test3 中使用表达式 Type::new 时发生的情况一样?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com