Pointer[Float] 类型的表达式不符合 Scala 中预期的 Pointer[Float] 类型

Expression of type Pointer[Float] doesn't conform to expected type Pointer[Float] in Scala

我是 Scala 的新手,我一直在尝试使用 Java 中实现的库 bridj。
这是代码(allocateFloats是classorg.bridj.Pointer中的一个方法)

import org.bridj.Pointer
import org.bridj.Pointer._

class EstimatingPi {
  def main(args: Array[String]) {
    val n: Int = 1024
    val aPtr : Pointer[Float] = allocateFloats(n)
  }
}

这将导致 "Expression of type Pointer[Float] doesn't conform to expected type Pointer[Float]"。但是,如果我不指定 aPtr 的类型,如下所示,代码会编译。

    val aPtr = allocateFloats(n)

我试图在网上找到解决方案,但问题大多是 "Expression of type someClass[T1] doesn't conform to expected type someClass[T2]"。但就我而言,它们是同一类型。
如果有任何帮助,我将不胜感激。

其中一个可能是java.lang.Float。您可能需要

val aPtr: Pointer[java.lang.Float] = allocateFloats(n)

如果从 allocateFloats 文档中看不出来,您可以通过执行类似

的操作找出它是什么类型
allocateFloats(0).getClass.getName

这将为您提供全名,前面有 [L,后面有 ;,例如

[Ljava.lang.Float;