【问题标题】:I keep getting this error when i use intstream in java, it says [closed]当我在java中使用intstream时,我不断收到这个错误,它说[关闭]
【发布时间】:2017-11-27 14:57:30
【问题描述】:

我不断收到错误此行的多个标记 - 语法错误,插入“)”完成 表达 - 标记“>”的语法错误,无效( - 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;
}

【问题讨论】:

  • 是java 1.7,我用的是eclipse
  • 你知道我是否可以在 eclipse 中克服这个问题,还是我必须获得 java 8?
  • 这在 Java 7 中永远无法使用,Streams 是随 Java 8 一起提供的。

标签: java machine-learning artificial-intelligence


【解决方案1】:

您的代码使用了 Java 8 的新特性流和 lambda 函数。如果您尝试使用 Java 7 或某些“1.7 编译器合规级别”编译该代码,我希望看到这些错误Java 8 IDE 提供。

你有几个选择。

  1. 获取 Java 8。我强烈推荐这个。它有很多非常好的特性,这些特性在早期版本的 Java 中是没有的。它已经存在几年了,真的没有理由不将它用于所有 Java 开发。
  2. 使用 Java 7 中提供的功能重写您的代码。导致所有这些错误的代码行可以编写如下。

.

 for( int x = 0; x < weights.length; x++ ) { 
     neurons.weights[x] = weights[x] + Math.random() - 0.5;
 }

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 2015-01-14
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 2012-09-30
    • 2016-03-08
    相关资源
    最近更新 更多