ArrayBuffer 不带此参数

问题描述 投票:0回答:1

我正在使用 Eclipse 进行 Scala 工作。

有人可以解释一下为什么我会收到此错误吗?

ArrayBuffer 行中不带此参数

 var ArrayBuffer1 = ArrayBuffer(1,2,3,4,5)

以下是导致此错误的代码。

import scala.collection.mutable.ArrayBuffer;

object ArrayBuffer {
  def main(args: Array[String]){
    
    var ArrayBuffer1 = ArrayBuffer(1,2,3,4,5)
    ArrayBuffer1.foreach(println)
    
  }
}
scala
1个回答
2
投票

您将对象命名为

ArrayBuffer
,它隐藏了导入。然后,编译器尝试将参数应用于对象,但它不能。

将其重命名为不同的名称将使其按预期工作(在以下示例中,

ArrayBufferMain
):

import scala.collection.mutable.ArrayBuffer;

object ArrayBufferMain {
  def main(args: Array[String]): Unit = {
    
    var ArrayBuffer1 = ArrayBuffer(1,2,3,4,5)
    ArrayBuffer1.foreach(println)
    
  }
}

Scala 编译器 2.13.14 报告了我提到的警告。您可能也想检查一下。

一些注意事项:

  1. 在您的代码中,您使用过程语法,该语法已被弃用(请参阅此处
  2. 仅供参考,如果您的名称发生冲突,则另一种可能是限定软件包或为导入别名,如下例所示
import scala.collection.mutable.{ArrayBuffer => AB};

object ArrayBuffer {
  def main(args: Array[String]): Unit = {
    
    var ArrayBuffer1 = AB(1,2,3,4,5)
    ArrayBuffer1.foreach(println)
    
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.