Main Content

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;

BA への参照です。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 メソッド ウィンドウで、ArrayListjava.lang.Object[] に変換する toArray メソッドを見つけます。

java.lang.Object[]	toArray	(java.lang.Object[])

Ajava.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

参考

|

関連する例

詳細

外部の Web サイト