himorogiの日記

主にプログラミングに関することなど。少々ハード(電子工作)についても。

2007-12-01から1ヶ月間の記事一覧

Java strings and JavaScript strings

JavaとJavaScript の String は異なる。Java の String は java.lang.String 型のインスタンスなので、そのクラス定義されたメソッドを持つのに対し JavaScript の String には String.prototype で定義されたメソッドがある。 よく間違えられるのは length …

Creating Java arrays

Rhino に Java 配列を作成する特別な構文はない。 Java 配列を作成するにはjava.lang.reflect.Array のクラスを使用する。以下では 5個のJavaストリングの配列を作成している: js> a = java.lang.reflect.Array.newInstance(java.lang.String, 5); [Ljava.la…

JavaScript functions as Java interfaces

先の Runnable の例や、様々なイベントリスナーを実装する際、メソッド1つだけのインタフェースを実装する必要がある。 そのようなインタフェースが予想されるとき、Rhino は JavaScript function を pass する。 function はインタフェースメソッドの実装と…

The JavaAdapter constructor

前セクションでは Javaインタフェースと共に new 句を使って JavaAdapter を作成したが、この方法では複数のインタフェースを実装できず、非抽象(non-abstract)クラスを拡張できない。この問題を解決するには JavaAdapter コンストラクタを使う。※ 抽象クラ…

Implementing Java interfaces

Java のクラスにアクセスし、Java オブジェクトを作成し、それらオブジェクトのフィールド、メソッド、およびプロパティを参照することで多くの機能を直ちに利用できる。 しかし Java の多くの API で、クライアントに実装を委ねるインタフェースを提供して…

Working with Java objects

Java のクラスにアクセスできれば、次の課題はオブジェクトの作成である。これは Java の new のように働く。 js> new java.util.Date() Wed Dec 05 14:12:54 JST 2007JavaScript 変数に格納した新しいオブジェクトを call メソッドで呼ぶことができる。 js>…

Calling overloaded methods

引数の型に基づき、呼び出すメソッドを決定するプロセスをオーバーロード解決と言う。 Javaでは、オーバーロード解決をコンパイル時に行うが、Rhino ではランタイム実行中に行う。動的な JavaScript では変数の型は実行時まで判らないので、オーバーロード解…

Accessing Java packages and classes

Java の code は class の一部で、Java class は package の一部だ。つまり Java の code は必ず何れかの package に含まれる。一方 JavaScript では script はあらゆる package の外にも存在する。 ・JavaScriptからJavaパッケージの中のクラスにアクセスす…

Javascript(Rhino/jrunscript)から Java のリソースを利用する

Java スクリプトプログラマーズガイド Scripting Java 上記サイトの内容を適当に訳しつつ、一部再構成。Accessing Java packages and classes - himorogiの日記 Working with Java objects - himorogiの日記 Calling overloaded methods - himorogiの日記 Im…

jrunscript をコマンドシェルから使う

□引数の参照jrunscript - コマンド行スクリプトシェル スクリプト引数を指定してスクリプトファイルを実行する jrunscript test.js arg1 arg2 arg3この arg1,arg2,arg3 はスクリプトからそれぞれ arguments[0],arguments[1],arguments[2] として参照できる。…

Javascript でブロックスコープ

□Javascript にはブロックスコープが無いという話。 404 Blog Not Found LLいろいろ、スコープいろいろ■Javascript ではブロックスコープはないが、with + JSON で実行コンテキストを制御できるという話。 Days on the Moon JavaScript でブロックスコープを…