Java 此lambda表达式的正确语法

Java 此lambda表达式的正确语法,java,lambda,java-8,functional-programming,mapping,Java,Lambda,Java 8,Functional Programming,Mapping,我有一个列表a。从这个列表中,我想创建一个新的列表B,使用列表a的一个字段来构造列表B中的对象。但是,我无法获得正确的语法。 目前我有 List<B> listB = listA.stream().map(id -> { ObjectB b = Mockito.mock(ObjectB.class); when(b.getId()).thenReturn(id.toString()); when(b.getNumericId()).thenReturn(

我有一个列表a。从这个列表中,我想创建一个新的列表B,使用列表a的一个字段来构造列表B中的对象。但是,我无法获得正确的语法。 目前我有

List<B> listB = listA.stream().map(id -> {
    ObjectB b = Mockito.mock(ObjectB.class);
    when(b.getId()).thenReturn(id.toString());
    when(b.getNumericId()).thenReturn(id); 
}).collect(Collectors.toList());
List listB=listA.stream().map(id->{
ObjectB=Mockito.mock(ObjectB.class);
when(b.getId()).thenReturn(id.toString());
when(b.getNumericId())。然后返回(id);
}).collect(Collectors.toList());

但是,我在map上遇到语法错误,我无法理解。

如果您在lambda创建中使用了
{}
,那么您也应该使用
return
,因此:

  List<B> listB = listA.stream().map(id -> {
         ObjectB b = Mockito.mock(ObjectB.class);
         when(b.getId()).thenReturn(id.toString());
         when(b.getNumericId()).thenReturn(id); 
         return b;
  })
List listB=listA.stream().map(id->{
ObjectB=Mockito.mock(ObjectB.class);
when(b.getId()).thenReturn(id.toString());
when(b.getNumericId())。然后返回(id);
返回b;
})

我必须承认:你是第一;)