外部インタフェース/API    

メソッドに関する情報の取得

MATLABは、作業を行うJavaメソッドに関連する情報を取得するためのコマンドを提供しています。クラスが実現しているすべてのメソッドの一覧を要求することができます。リストは、引数のタイプや例外のようなその他のメソッドの情報と共に提供されている場合があります。指定したメソッドを実現するMATLABにロードされたJavaクラスのリストを要求することも可能です。

Methodsview: Javaメソッドのリストの表示

特定のJava(あるいはMATLAB)クラスによってどのメソッドが実現されるかを知りたい場合は、MATLABでmethodsviewコマンドを使います。コマンドラインで(Javaクラスに対するパッケージ名と共に)クラス名を指定します。このクラスを定義するパッケージをインポートした場合、クラス名のみで十分です。

つぎのコマンドは、java.awt.MenuItemクラスの全てのメソッドに関する情報をリストします。

クラス内の各メソッドに対して1行の情報を表示する新規のウィンドウが現れます。以下は、methodsviewの表示です。ウィンドウの一番上のフィールド名は、図のつぎに示します。

ウィンドウ内の各行は、メソッドを説明する最大6フィールドの情報を表示します。下記の表は、各フィールドタイプの説明や例と共にmethodsviewウィンドウに表示されるフィールドの一覧です。

表 5-1: Methodsviewウィンドウに表示されるフィールド
フィールド名
説明

Qualifiers
メソッドタイプ修飾子
abstract, synchronized
Return Type
メソッドにより出力されるデータタイプ
void, java.lang.String
Name
メソッド名
addActionListener, dispatchEvent
Arguments
メソッドに渡される引数
boolean, java.lang.Object
Other
その他の関連情報
throws java.io.IOException
Parent
指定したクラスの親
java.awt.MenuComponent

Javaクラスに対するMethodsコマンドの利用

methodsviewに加えて、MATLABクラスのメソッドに関する情報を出力するMATLABのmethodsコマンドも、Javaクラスに対して機能します。つぎのいずれかの形式でコマンドを使うことができます。

'-full'修飾子を付けずにmethodsを呼び出すと、(継承されたメソッドを含む)クラスのすべてのメソッド名を出力します。オーバロードされるメソッド名は1回だけリストされます。

'-full'修飾子を付けると、methodsは、それぞれの属性、引数リスト、継承の情報と共に(継承されたメソッドを含む)メソッド名のリストを出力します。オーバロードされたメソッドは、別にリストされます。

たとえば、java.awt.Dimension objectオブジェクトのすべてのメソッドの詳しい説明を表示します。

どのクラスがメソッドを定義するかを決定

whichコマンドを使って、ロード されたJavaクラスにより実現されたメソッドの(パッケージとクラス名)修飾子付きの名前を表示することができます。-all修飾子を付けると、whichコマンドは、指定された名前のメソッドを持つすべてのクラスを検索します。

たとえば、Stringクラスが現在ロードされているconcatメソッドに対するパッケージとクラス名を探したいとします。つぎのコマンドを使います。

java.lang.Stringクラスがロードされていない場合は、同じwhichコマンドはつぎの出力を与えます。

Stringおよびjava.awt.Frameクラスがロードされているメソッドequalsに対してwhich -allを使う場合は、以下が表示されます。

whichコマンドは、MATLABクラスとJavaクラスに対しては異なって機能します。MATLABクラスは、それらがロードされていてもいなくても、whichによって常に表示されます。これは、Javaクラスに対してはあてはまりません。「どのクラスがロードされているかを決定する」に説明されているコマンド[m,x,j]=inmemを使って、どのJavaクラスが現在ロードされているかを知ることができます。

Javaクラスがどのようにロードされるかに関する説明は、「MATLABでJavaクラスを利用可能にする」を参照してください。


 Javaクラスに対するスタティックメソッドの呼び出し MATLABコマンドに影響を与えるJavaメソッド