在以下代码中使用地图时出错

Error at using map in the following code

List<Double> NormalizedData = Doublevalues1.stream().map(n -> (((((n-min)/(max-min)))*2)-1)).collect(Collectors.toList());

此处maxmin属于double数据类型

我的错误从行开始 任何人都可以在这方面帮助我

错误是"local variables referenced from lambda expression must be final or effectively final"

local variables referenced from lambda expression must be final or effictively final

您只能使用未更改的变量。如果它抱怨 min,您可能需要复制一份

int min2 = min; // after this use min2, but don't change it.

注意:某些 IDE 有针对此问题的自动修复。查看您是否突出显示了任何变量,IDE 可能会为您更正此问题。

如错误所述,在 labmda 表达式中使用它们之前,您应该将 minmax 定义为 final

final double min = // some value
final double max = // some other value
List<Double> NormalizedData = 
    Doublevalues1.stream()
                 .map(n -> (((((n-min)/(max-min)))*2)-1))
                 .collect(Collectors.toList());
final double max1 = max;
      final double min1 = min;
     List<Double> NormalizedData = Doublevalues1.stream().map(n -> (((((n-min1)/(max1-min1)))*2)-1)).collect(Collectors.toList());

这会起作用