Java メソッドの呼び出し
この例では、java.util.ArrayList クラスのメソッドを呼び出す方法を説明します。この例は、MATLAB® で Java® オブジェクトを参照としてもつ意味を示します。
java.util.ArrayList クラスは Java 標準ライブラリの一部です。したがって、クラスは既に Java クラス パス上にあります。標準ライブラリ内にないクラスのメソッドを呼び出す場合は、MATLAB がメソッドを見つけられるよう Java クラス パスを更新します。詳細については、Java クラス パスを参照してください。
Java オブジェクトを作成するクラス コンストラクターの選択
クラス コンストラクターのいずれかを使用して ArrayList オブジェクトを作成します。クラス メソッドを表示して、メソッド ウィンドウで ArrayList エントリを検索します。
methodsview('java.util.ArrayList')ArrayList (java.util.Collection) ArrayList ( ) ArrayList (int)
初期容量 10 で空のリストを作成する ArrayList() 構文を選択します。
クラス名の短縮化
関数 import を使用して、パッケージ名 java.util 全体を指定せずに ArrayList クラスを参照します。
import java.util.ArrayList配列リストの作成
空の ArrayList オブジェクトを作成します。
A = ArrayList;
add メソッドへの MATLAB データの受け渡し
項目を ArrayList オブジェクトに追加します。メソッド ウィンドウで add メソッドのシグネチャに注目します。
void add (int,java.lang.Object) boolean add (java.lang.Object)
boolean add(java.lang.Object) 構文を選択します。引数 java.lang.Object は Java 型です。対応する MATLAB 型を見つけるには、java.lang.Object の受け渡しの表を参照してください。double 引数を渡すと MATLAB はそれを java.lang.Double 型に変換します。
ArrayList への要素の追加
add メソッドを呼び出すには、MATLAB 構文を使用します。
add(A,5); A
A = [5.0]
または、Java 構文を使用します。
A.add(10); A
A = [5.0, 10.0]
MATLAB において Java オブジェクトは参照
Java オブジェクトのコピー動作を観察するには、A を新しい変数 B に代入します。
B = A;
B は A への参照です。B によって参照されるオブジェクトへの変更により A のオブジェクトも変わります。MATLAB コードでも Java コードでもオブジェクトを変更できます。たとえば、B に値を追加してから A を表示します。
add(B,15); A
A = [5.0, 10.0, 15.0]
MATLAB での ArrayList オブジェクトの使用
ArrayList 型の Java オブジェクトを返す Java メソッドを呼び出すとします。前の節でコマンドを呼び出した場合、変数 A には以下の値が含まれます。
class(A)
ans =
'java.util.ArrayList'
A
A = [5.0, 10.0, 15.0]
MATLAB で A を使用するには、オブジェクトを java.lang.Object 型またはプリミティブ型に変換します。その後、MATLAB 関数 cell および cell2mat を適用します。
ArrayList メソッド ウィンドウで、ArrayList を java.lang.Object[] に変換する toArray メソッドを見つけます。
java.lang.Object[] toArray (java.lang.Object[])
A を java.lang.Object に変換します。
res = toArray(A)
res =
java.lang.Object[]:
[ 5]
[10]
[15]出力を MATLAB 型に変換します。
res = cell(res)'
res =
1×3 cell array
[5] [10] [15]この値を行列に変換するには、要素が同じ型でなければなりません。この例では、値を double 型に変換します。
data = cell2mat(res)
data =
5 10 15