2012-03-13 65 views
4

私はクラスの配列(JNAの構造体を拡張する)を作成してDLL関数に渡そうとしています。私は、データベースからArrayListに読み込まれた値を持っているので、配列にそれらを入れる必要があります。 、私は単にのArrayListと同じサイズを持つ新しい配列を設定した場合JNA、構造体と配列

java.lang.IllegalArgumentException: Structure array elements must use contiguous memory (bad backing address at Structure array index 1) 

:まず、私は、ArrayListのののtoArray()メソッドを使用しようとしましたが、私はネイティブ関数を呼び出すとき、それは私に次の例外を返しますクラスの構造体の 'fields'を設定すると、NullPointerExceptionが返されます。

誰かが私を解決するのを助けることができますか?

+0

plsは、配列に変換するために使用するコードを示しています。 – Adrian

+1

非常に簡単です。 MyClass myClass = new MyClass(); MyClass [] myArray =(MyClass [])myClass.toArray(sizeOfArray); –

答えて

2

Structure.toArray()は、連続して割り当てられた構造オブジェクトのブロックを提供します。 「値」のArrayListから初期化する前に、この構造体の配列を作成します。