2015-06-18 2 views
0

Я новичок в Scala, и я пытаюсь использовать библиотеку bridj, реализованную на Java.
Вот код (allocateFloats является метод в классе org.bridj.Pointer)Выражение типа Pointer [Float] не соответствует ожидаемому типу Pointer [Float] в Scala

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]». Но в моем случае они одного типа.
Я бы очень признателен за любую помощь.

ответ

1

Один из них, вероятно, является java.lang.Float. Вы, вероятно, нужно

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

Если это не очевидно из документации allocateFloats, вы можете выяснить, какой тип это делать что-то вроде

allocateFloats(0).getClass.getName 

, который даст вам полное имя с [L до и ; после, например

[Ljava.lang.Float; 
+0

Да, это именно оно. Большое спасибо! – Xiangyu

Смежные вопросы