小编Kar*_*y L的帖子

BinaryOperator的标识

我在Java8的UnaryOperator接口中看到了一段代码,它对参数没有任何作用并返回相同的值.

static <T> UnaryOperator<T> identity() {
    return t -> t;
}
Run Code Online (Sandbox Code Playgroud)

BinaryOperator有什么东西可以接受samekind的两个参数并返回一个值

static <T> BinaryOperator<T> identity() {
    return (t,t) -> t;
}
Run Code Online (Sandbox Code Playgroud)

为什么我问这个问题是针对以下要求,

List<String> list = Arrays.asList("Abcd","Abcd");
Map<String,Integer> map = list.stream().collect(Collectors.toMap(str->str, 
str->(Integer)str.length(),(t1,t2)->t1));
System.out.println(map.size());
Run Code Online (Sandbox Code Playgroud)

在上面的代码我不想为同一个键的两个值做任何事情,我只想返回一个值,因为在我的情况下肯定值将是相同的.由于我没有使用t2值声纳投掷错误,所以我发现在java8中也存在像BinaryOpertor的UnaryOperator.identity()这样的东西

java lambda functional-programming java-8

7
推荐指数
2
解决办法
338
查看次数

龙目岛中的@​​Delegate 和@Builder 组合

我有一个来自第三方 jar 的类 Acc.java 如下

@Data
public class Acc{

private String a;

private String b;

}
Run Code Online (Sandbox Code Playgroud)

我在我的类中使用类 Acc,其中 Bcc.java 作为实例变量。我想使用 lombok 在 Bcc.java 中为 Acc 实例变量创建构建器。

我尝试了以下方式

@Data
@Builder
public class Bcc{

@Delegate
private Acc acc;
}
Run Code Online (Sandbox Code Playgroud)

从上面的代码中,我看到 Bcc.builder().acc() 这是具有构建 Acc 对象的方法的构建器。

但我需要 Bcc.builder.a("").b("").build()。“a”和“b”是 Acc.java 类的一部分。

有人可以帮我吗..?

java lombok

6
推荐指数
1
解决办法
567
查看次数

标签 统计

java ×2

functional-programming ×1

java-8 ×1

lambda ×1

lombok ×1