它说,当我在java中使用intstream时,我不断收到此错误

时间:2017-06-23 23:57:59

标签: java machine-learning artificial-intelligence

我不断收到错误此行的多个标记      - 语法错误,插入“)”完成      表达      - 令牌“>”上的语法错误,无效(      - x无法解析为变量      - 令牌“>”上的语法错误,无效(      - x无法解析为变量

public Neuron adjust(){
    Neuron neuron = new Neuron(layerType());
    IntStream.range(0, weights.length).forEach(x -> neuron.weights[x]=weights[x] + Math.random()-0.5);
    neuron.threshold=threshold+Math.random()-0.5;
    return neuron;
}

1 个答案:

答案 0 :(得分:2)

您的代码使用了作为Java 8新功能的流和lambda函数。如果您尝试使用Java 7编译该代码,或者使用“1.7编译器合规级别”,那么这些错误是我期望看到的。 Java 8 IDE提供。

你有几个选择。

  1. 获取Java 8.我完全推荐这个。它有许多非常好的功能,而不是早期版本的Java。它已经存在了几年了,并且没有充分的理由不将它用于所有的Java开发。
  2. 使用Java 7中提供的功能重写您的代码。提供所有这些错误的代码行可以编写如下。
  3.  for( int x = 0; x < weights.length; x++ ) { 
         neurons.weights[x] = weights[x] + Math.random() - 0.5;
     }
    

    坦率地说,即使我使用Java 8,我也会以这种方式编写代码。大多数人会发现for循环比你编写的代码行更容易阅读。当一个简单,清晰的for循环可以解决这个问题时,使用stream和lambdas毫无意义。