我在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()这样的东西
我有一个来自第三方 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 类的一部分。
有人可以帮我吗..?