gpt4 book ai didi

java - 从 lambda 内部设置局部变量值

转载 作者:行者123 更新时间:2023-12-02 01:55:58 25 4
gpt4 key购买 nike

我有以下代码:

  public void visitStrAttribute(String attributeName, Consumer<String> attributeConsumer) {
IntConsumer intConsumer;
int stringByteArrayLength = 0;
visitIntAttribute("", (IntValue) -> stringByteArrayLength = IntValue);
attributeConsumer
.accept(new String(readInputStream(stringByteArrayLength), StandardCharsets.UTF_8));
}

我需要在 lambda 内部设置 stringByteArrayLength,但会出现一条错误消息,它告诉我在封闭范围内定义的局部变量 stringByteArrayLength 必须是最终的或有效的最终

如何解决这个问题?

最佳答案

这里有两种选择:

  • 创建一个具有此属性的类,因此其中的对象将是最终的,但实例变量不是最终的
  • 设置变量类作用域(小心多线程)

这些解决方案有效,但也许不是最好的选择,因此要获得一些灵感,请参阅:Lambdas: local variables need final, instance variables don't

关于java - 从 lambda 内部设置局部变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52277859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com