チケット #533 (closed 新機能・拡張: fixed)

登録: 12 年 前

最終更新: 12 年 前

importClass(), importPackage()の追加

報告者: shinomiya 担当者: shinomiya
優先度: major マイルストーン: 0.1.2
コンポーネント: im-jssp バージョン: 0.1.2
キーワード: 関係者:

チケットの概要

importClass(), importPackage()を追加します。
これにより、JavaScript上でJavaクラスを利用することが容易になります。

修正内容

FoundationScriptScope?の親クラスをomj.ImporterTopLevel に変更

サンプルソース

importClass(java.lang.System);
importPackage(java.util);

var list = new ArrayList();
list.add("value1");
list.add("value2");
list.add("value3");

var it = list.iterator();
while(it.hasNext()){
	System.out.println(it.next());
}	

チケットの履歴

2007/12/27 22:43:48 更新者:shinomiya

  • ステータスnew から closed に更新されました。
  • 解決方法fixed に更新されました。

修正しました。[162], [163]
あわせて、Rhinoで定義されているその他のグローバル関数も使えるようにしました。

追加項目

グローバル関数

  • importClass()
  • importPackage()
  • seal()
  • gc()
  • toint32()
  • version()
  • readFile()
  • readUrl()
  • loadClass()
  • defineClass()
  • sync()
  • spawn()

グローバル変数

  • environment

サンプルソース

抜粋:sync(), spawn()

var o = {
	f: sync(
		function(name, time){
			Debug.print("[" + name + "] +++ entry +++");
			sleep(time * 1000);
			Debug.print("[" + name + "] --- exit  ---");
		}
	)
};

var f4spawn = function(){
	var threadName = Packages.java.lang.Thread.currentThread().getName();
	
	Debug.print("[" + threadName + "] ****** START ******");
	o.f(threadName, 5);
	Debug.print("[" + threadName + "] ******  END  ******");
};

spawn(f4spawn);
spawn(f4spawn);

実行結果

以下のように、同期化されています。

[Thread-5] ****** START ******
[Thread-5] +++ entry +++
[Thread-6] ****** START ******
[Thread-5] --- exit  ---
[Thread-5] ******  END  ******
[Thread-6] +++ entry +++
[Thread-6] --- exit  ---
[Thread-6] ******  END  ******