我在The final local variable token cannot be assigned, since it is defined in an enclosing type
和token
内的forEach
处收到lambda
编译错误。我想要做的就是将列表中唯一的项目分配给token
变量。
PS:我确信list
中只有一个项目。
public static void main(String[] args) throws Exception {
final StringBuilder token;
AuthResponse authResponse = new AuthResponse();
authResponse.getTokens().forEach(item -> {
token.append(item.getToken());
});
}
如果我将token
声明为Instance variable
,则没有问题。但还有其他办法吗?
有一些相关的帖子,但我想了解此问题的解决方案
编辑:我已将问题更新为StringBuilder
而不是String
答案 0 :(得分:1)
您需要指定一个实例:
StringBuilder token = new StringBuilder();
但你为什么要重新发明轮子;使用类似的东西:
String tokens = new AuthResponse().getTokens().stream()
.map(Object::toString)
.collect(Collectors.joining(","));