我是 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]”。但就我而言,它们是同一类型。
我真的很感激任何帮助。
最佳答案
其中之一可能是java.lang.Float
。您可能需要
val aPtr: Pointer[java.lang.Float] = allocateFloats(n)
如果从 allocateFloats
文档中看不出来,您可以通过执行类似的操作来找出它是什么类型
allocateFloats(0).getClass.getName
这将为您提供全名,前面带有 [L
,后面带有 ;
,例如
[Ljava.lang.Float;
关于java - Pointer[Float] 类型的表达式不符合 Scala 中预期的 Pointer[Float] 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30905442/