我正在尝试使用lambda表达式实例化一个数组。
public class Main {
static int x = 0;
public static void main(String[] args) {
Test[] t = (Test[]) Stream
.generate(() -> new Test(x++, 0))
.limit(10)
.map((Test v) -> {
v.a = v.a * 2;
return v;
})
);
public class Test {
int a, b;
Test(int a, int b) {
this.a = a;
this.b = b;
}
}
该数组是一个“[Ljava.lang.Object;”实例
//class "[Ljava.lang.Object;"
System.out.println(
Stream.generate(() -> new Test(x++, 0))
.limit(10)
.map((Test v) -> {
v.a = v.a * 2;
return v;
})
.toArray().getClass()
);
数组的每个对象都是一个“测试”实例
//class "Test"
System.out.println(
Stream.generate(() -> new Test(x++, 0))
.limit(10)
.map((Test v) -> {
v.a = v.a * 2;
return v;
})
.toArray()[0].getClass()
);
您不能仅仅强制转换一个流并期望它成为一个数组。
使用a[]toArray(IntFunction generator)方法。
Test[] a = Stream.generate(() -> new Test(x++, 0))
.limit(10)
.map((Test v) -> {
v.a = v.a * 2;
return v;
})
.toArray(Test[]::new);
问题内容: 有没有更好的功能方法,可以使用Java 8 lambda语法将“ key:value”形式的字符串数组转换为a ? 我现在拥有的解决方案似乎并没有真正起作用: 问题答案: 您可以修改解决方案以将的数组收集到中(而不是使用): 当然,该解决方案不能防止无效输入。也许您应该添加一个过滤器,以防拆分字符串没有分隔符: 这仍然不能保护您免受所有无效输入的侵害(例如,将导致抛出)。
我是jpa的新手,需要这样的东西: 我能修好它吗?
如果没有找到可行的初始值设定项列表构造函数,则再次执行重载解析,其中候选函数是类T的所有构造函数,参数列表由初始值设定项列表的元素组成。 : 如果构造函数的第一个参数类型为或对某些类型可能是CV限定的的引用,并且没有其他参数,或者所有其他参数都具有默认参数,则构造函数就是初始化式列表构造函数
我还在尝试理解lambda表达式。 我想将这个lambda表达式转换为“普通”表达式: 你们有主意吗? 提前谢谢。
我希望将一个< code>int数组转换为一个< code>double数组。 所以,当我有 我想使用,比如说把它作为参数传递给一个方法。 最好的方法是什么? 演员阵容 不工作。 我可以迭代通过: 有没有更好的方法来做到这一点? <代码>系统。arraycopy不起作用——不适用于两种不同基元类型的数组。 注意:在Java和其他一些讨论中,我们看到了将对象转换为数组。 蒂亚。
使用Java 8 lambda语法将“key:value”形式的字符串数组转换为是否有更好的功能方法? 我现在的解决方案似乎并不实用: