迅速に、Javaクラスの機能で、MINERVAを拡張するメカニズム。...
移動
次へ 前へ
上へ 最上
参考
高度
リフレクション
静的
イフコンピュータ > MINERVA > マニュアル > レファレンス > MINERVAからJavaへのインタフェース > リフレクション

リフレクション

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

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

意味論:

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

  • メソッドが型'void'を復帰するならば、述語は成功します。 リターン項はありません。

  • メソッドが型'boolean'を復帰するならば、それに応じて、述語が成功するか、失敗します。 リターン項はありません。

  • 上記でない場合、述語は成功します。 メソッドの結果は、述語の最後の引き数として復帰されます。

  • メソッドが'static'(すなわちクラス・メソッド)でないならば、述語は最初の引き数として、メソッドが適用されるオブジェクトをとります。

要約:

	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

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

  • 例:
    • ExamplePrograms/MinervaFeatures/Reflection

続く..
MINERVA
ifcomputer logo
f
Expert Services on the Web
言語
English
Japanese
サーバー
USA
Japan
サイトマップ
索引
目次
全体目次
全体索引
印刷向き
imode
PDA
探索
document: http://www.ifcomputer.co.jp/MINERVA/Manual/Reference/MinervaToJavaInterface/Reflection/home_jp.html
published 2008/7/7 update 2002/3/20 (c) 1996-2006 IF Computer Japan
IF Computer 〒113-0022 Tel 03-5814-3352 ifcj@ifcomputer.co.jp
Customer Support 東京都文京区千駄木5-28-2   http://www.ifcomputer.co.jp
冒頭へ managed with ubiCMS