外部インタフェース/API | ![]() ![]() |
メソッドに関する情報の取得
MATLABは、作業を行うJavaメソッドに関連する情報を取得するためのコマンドを提供しています。クラスが実現しているすべてのメソッドの一覧を要求することができます。リストは、引数のタイプや例外のようなその他のメソッドの情報と共に提供されている場合があります。指定したメソッドを実現するMATLABにロードされたJavaクラスのリストを要求することも可能です。
Methodsview: Javaメソッドのリストの表示
特定のJava(あるいはMATLAB)クラスによってどのメソッドが実現されるかを知りたい場合は、MATLABでmethodsview
コマンドを使います。コマンドラインで(Javaクラスに対するパッケージ名と共に)クラス名を指定します。このクラスを定義するパッケージをインポートした場合、クラス名のみで十分です。
つぎのコマンドは、java.awt.MenuItem
クラスの全てのメソッドに関する情報をリストします。
methodsview java.awt.MenuItem
クラス内の各メソッドに対して1行の情報を表示する新規のウィンドウが現れます。以下は、methodsview
の表示です。ウィンドウの一番上のフィールド名は、図のつぎに示します。
ウィンドウ内の各行は、メソッドを説明する最大6フィールドの情報を表示します。下記の表は、各フィールドタイプの説明や例と共にmethodsview
ウィンドウに表示されるフィールドの一覧です。
Javaクラスに対するMethodsコマンドの利用
methodsview
に加えて、MATLABクラスのメソッドに関する情報を出力するMATLABのmethods
コマンドも、Javaクラスに対して機能します。つぎのいずれかの形式でコマンドを使うことができます。
methodsclass_name
methodsclass_name
-full n = methods('class_name
') n = methods('class_name
','-full')
'-full'
修飾子を付けずにmethods
を呼び出すと、(継承されたメソッドを含む)クラスのすべてのメソッド名を出力します。オーバロードされるメソッド名は1回だけリストされます。
'-full'
修飾子を付けると、methods
は、それぞれの属性、引数リスト、継承の情報と共に(継承されたメソッドを含む)メソッド名のリストを出力します。オーバロードされたメソッドは、別にリストされます。
たとえば、java.awt.Dimension
objectオブジェクトのすべてのメソッドの詳しい説明を表示します。
methods java.awt.Dimension -full Methods for class java.awt.Dimension: Dimension() Dimension(java.awt.Dimension) Dimension(int,int) java.lang.Class getClass() % Inherited from java.lang.Object int hashCode() % Inherited from java.lang.Object boolean equals(java.lang.Object) java.lang.String toString() void notify() % Inherited from java.lang.Object void notifyAll() % Inherited from java.lang.Object void wait(long) throws java.lang.InterruptedException % Inherited from java.lang.Object void wait(long,int) throws java.lang.InterruptedException % Inherited from java.lang.Object void wait() throws java.lang.InterruptedException % Inherited from java.lang.Object java.awt.Dimension getSize() void setSize(java.awt.Dimension) void setSize(int,int)
どのクラスがメソッドを定義するかを決定
which
コマンドを使って、ロード されたJavaクラスにより実現されたメソッドの(パッケージとクラス名)修飾子付きの名前を表示することができます。-all
修飾子を付けると、which
コマンドは、指定された名前のメソッドを持つすべてのクラスを検索します。
たとえば、String
クラスが現在ロードされているconcat
メソッドに対するパッケージとクラス名を探したいとします。つぎのコマンドを使います。
which concat java.lang.String.concat % String method
java.lang.String
クラスがロードされていない場合は、同じwhich
コマンドはつぎの出力を与えます。
which concat concat not found.
String
およびjava.awt.Frame
クラスがロードされているメソッドequals
に対してwhich -all
を使う場合は、以下が表示されます。
which -all equals java.lang.String.equals % String method java.awt.Frame.equals % Frame method com.mathworks.ide.desktop.MLDesktop.equals % MLDesktop method
which
コマンドは、MATLABクラスとJavaクラスに対しては異なって機能します。MATLABクラスは、それらがロードされていてもいなくても、which
によって常に表示されます。これは、Javaクラスに対してはあてはまりません。「どのクラスがロードされているかを決定する」に説明されているコマンド[m,x,j]=inmem
を使って、どのJavaクラスが現在ロードされているかを知ることができます。
Javaクラスがどのようにロードされるかに関する説明は、「MATLABでJavaクラスを利用可能にする」を参照してください。
![]() | Javaクラスに対するスタティックメソッドの呼び出し | MATLABコマンドに影響を与えるJavaメソッド | ![]() |