かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

JavaでJavaScript使ってみよう

Java SE 6.0が出たので実験
とりあえずメモ

package jp.co.ffc;

import java.io.StringReader;

import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class Script {
	public static void main(String[] args) throws Exception {
		ScriptEngineManager sem = new ScriptEngineManager();
		// JavaScriptのエンジンを取得
		ScriptEngine se = sem.getEngineByName("js");
		
		// JavaのオブジェクトをJavaScriptから使うためにバインドするのに使う
		Bindings bindings = se.getBindings(ScriptContext.ENGINE_SCOPE);

		// Javaのオブジェクトをバインドする
		Person person = new Person();
		bindings.put("person", person);
		
		// 実行!
		StringReader sr = new StringReader("person.name = '広島 太郎';");
		se.eval(sr);
		
		// 広島 太郎と表示される
		System.out.println(person.getName());
	}
}

class Person {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}