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

时间:2015-06-18 02:15:52

标签: java scala bridj

我是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)
  }
}

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

    val aPtr = allocateFloats(n)

我试图在线找到解决方案,但问题大多是“类型someClass [T1]的表达式不符合预期类型someClass [T2]”。但在我的情况下,它们是相同的类型 我真的很感激任何帮助。

1 个答案:

答案 0 :(得分:1)

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

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

如果allocateFloats文档中不明显,您可以通过执行类似

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

会在之前和[L之后为您提供;的全名,例如

[Ljava.lang.Float;