JAVA8两个流变量相等_在lambda中使用的Java 8流变量应该是最终的或有效的最终[复制]...

这个问题已经问过了。但今天我发现了一些奇怪的东西。以下代码:

public static List convertBucketDefinitionList(List bucketInstanceDefinitionV1List) {

List response = new ArrayList<>();

List finalResponse = new ArrayList<>();

bucketInstanceDefinitionV1List.stream().forEach(e -> {

EsbBucketInstanceDefinition esbBucketInstanceDefinition = new EsbBucketInstanceDefinition();

esbBucketInstanceDefinition.setInstanceType(e.getInstanceType());

esbBucketInstanceDefinition.setReportingGroup(e.getReportingGroup());

esbBucketInstanceDefinition.setSliceVolume(e.getSliceVolume());

esbBucketInstanceDefinition.setCounterName(e.getCounterName());

esbBucketInstanceDefinition.setSubscriberGroupId(e.getSubscriberGroupId());

// response.add(esbBucketInstanceDefinition); compiler error variable used in lambda should be final or effective final

finalResponse.add(esbBucketInstanceDefinition);

});

return finalResponse;

}

因为这很管用。看起来只有变量名finalResponse有效。为什么?这样做有效吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值