0

我是 Scala 的新手,我一直在尝试使用用 Java 实现的库 Bridj。
这是代码(allocateFloats 是类 org.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)
  }
}

这将导致“Pointer[Float] 类型的表达式不符合预期的 Pointer[Float] 类型”。但是,如果我没有指定 aPtr 的类型,如下所示,代码会编译。

    val aPtr = allocateFloats(n)

我试图在网上找到解决方案,但问题大多类似于“someClass[T1] 类型的表达式不符合预期的 someClass[T2] 类型”。但就我而言,它们是同一类型。
我真的很感激任何帮助。

4

1 回答 1

1

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

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

如果从allocateFloats文档中看不出来,你可以通过做类似的事情来找出它是什么类型

allocateFloats(0).getClass.getName

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

[Ljava.lang.Float;
于 2015-06-18T02:38:06.950 回答