himorogiの日記

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

2007-01-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 でブロックスコープを…

UAV に RealtimeJava

ITmedia エンタープライズ:ボーイングが採用したリアルタイムJavaの理由 (2/2) HOME: ASWとISRの主要プロダクト Boeing: Integrated Defense Systems - ScanEagle

bit 演算版 lotos()

※ 1からloto の最大値(MiniLoto は 31、Loto6 は 43)までの数列を連続した bit field と見做し、loto の数字の組み合わせ(MiniLoto は 5個、Loto6 は 6個)を乱数で生成し、生成した値に対応した bit をマークする。Loto の数字の組み合わせは重複が許さ…

Javascript で bit 演算

funtcion bitTst(x,y){ return(0!=(x & 1<

iPod touch : 見た!聴いた!買った!

添付の Inner Head Phone は使わない。 Sony の MDR-EX85SL (Black)を持ってたのでこれで聴いてる。 添付の純正品(?)は良し悪し以前に初期 iPod のホワイトボディに揃えた白いやつなんで・・・むしろ MDR-EX85SL (Black) の方が裏側鏡面仕上げ+表面黒縁…

function kuji()

■□昨日の numnbers() と loto を統合して単体の function にしてみた ※ 改定版 function kuji(kujiMode){ var s; function numbers(md){ switch(md){ case 3:s="00" + Math.floor(Math.random()*1000); break; case 4:s="000"+ Math.floor(Math.random()*100…

Numbers

■□WindowsScriptHost で Numbers4 の数字を生成する script を以前書いていた var str="000"+Math.floor(Math.random()*10000); WScript.Echo(str.substr(str.length-4,4));■□その前のオリジナルでは Math.pow を使っていた(実行環境を変えたとき、script …

Loto

■□WindowsScriptHost で Loto の数字を生成する script ■□ lotos() ※ 改訂版 function lotos(ltMd){ var ltCeil; L = new Array(ltMd); function getLtAtom(){ return(Math.ceil(Math.random()*ltCeil)); } for(i=c=0; i