MATLAB での未定義メソッドの処理
MATLAB® コマンドが Java® オブジェクトに存在しないメソッドを呼び出した場合、MATLAB は同じ名前の関数を探します。同じ名前の関数が見つかると、MATLAB はその関数を呼び出そうとします。同じ名前の関数が見つからない場合、そのクラスの名前ではメソッドを検出できないことを示すメッセージが MATLAB に表示されます。
たとえば、MATLAB に size
という名前の関数があり、Java API java.awt.Frame
クラスにも size
メソッドがあります。Frame
オブジェクトで size
を呼び出すと、java.awt.Frame
によって定義されている size
メソッドが実行されます。しかし、java.lang.String
のオブジェクトで size
を呼び出すと、MATLAB はこのクラスの size
メソッドを見つけられません。そのため、代わりに MATLAB 関数 size
が実行されます。
text = java.lang.String('hello');
size(text)
ans = 1 1
メモ
Java クラスを MATLAB で使用するために定義する場合、そのメソッドに MATLAB 関数と同じ名前を付けないようにしてください。