リフレクション

迅速に、Javaクラスの機能で、MINERVAを拡張するメカニズム。

リフレクションの使用は、minervaxを通して静的にJava拡張をMINERVAへ加えることに替えて使用できます。

意味論:

Javaメソッド・オブジェクトからMINERVA述語を生成する:

要約:

	static void fun(X, Y)		=>	fun(X, Y)
	void fun(X, Y)			=>	fun(Object, X, Y)
	static boolean fun(X, Y)	=>	fun(X, Y)
	boolean fun(X, Y)		=>	fun(Object, X, Y)
	static int fun(X, Y)		=>	fun(X, Y, Result)
	int fun(X, Y)			=>	fun(Object, X, Y, Result)

述語invoke_method/4は、直接メソッドを呼び出すために使われます。 つまり、declare_method/2を使わずに呼び出すということです。

	invoke_method(+Method, +Object, +ArgumentList, -Result)

例:

	:
	get_class('java.lang.String', String),
	get_class(int, Integer),
	get_method(String, substring, [Integer,Integer], Substring),
	invoke_method(Substring, hello, [1,4], Result).

==> Result = ell

例題プログラムのセクションを参照ください。


戻る 続く..