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

标签 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)
  }
}

这将导致“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/

相关文章:

java - Tess4j - Pdf 到 Tiff 到超正方 - "Warning: Invalid resolution 0 dpi. Using 70 instead."

Scala:如何在编译时不知道类型的情况下调用具有类型参数和 list 的方法?

java - 来自 Java 的 hunspell 和个人词典

java - 运行 JAR 文件时出错

java - Spring中Session/HttpSession对象中存储对象列表

java - Java中使用分隔符连接字符串

java - Spark 3.1.2 NoSuchMethodError : org. apache.spark.sql.catalyst.expressions.aggregate.AggregateFunction.toAggregateExpression$default$2()Lscala/Option;

scala - 如何合并/组合不同大小的元组列表

java - 无符号类型的 BridJ 类型映射

java - BridJ - Pointer.pointerToAddress(long peer) 已被弃用