ストリーミングで XML - StAX 第 3 の刺客? 今まで、Java で XML を扱うのには 3 種類の方法がありました。 DOM SAX JAXB JAXB はちょっと毛色が違うので、単に XML をパースするならば DOM か SAX です。 ところが、Java SE 6 では新たにもう 1 つパーサが追加されました。 それが今回紹介する Streaming API for XML、通称 StAX です。StAX は JCP の JSR-173 で策定されており、BEA がスペックリードになっています。 さて、この 3 つのパーサの違いというのは何なのでしょう。よく説明されるのが、 DOM - オブジェクトモデル SAX - プッシュモデル StAX - プルモデル というものです。 DOM がオブジェクトモデルというのはすぐに分かりますね。DOM ツリーとしてヒープに持つわけ
実装の確認 これまで、Javaのオブジェクト指向とポリモーフィズムの実現を学習し 動的なメソッドやクラスの継承、インターフェイスを覚えました Java言語はポリモーフィズムをサポートするオブジェクト指向型言語です これは、Cとは違ってコンパイル時にデータ型が決定されません メソッドのオーバーライドでは、実行時にデータ型が決定されます しかし、そのデータ型が実際に何を指しているのか知る必要が出てくる場合があります そのような場合instanceof演算子が有効です instanceof演算子は、次のような書式を持ちます var instanceof type varには変数名を、typeにはクラスやインターフェイス名を指定します varがtypeで指定されたクラスやインターフェイスを実装していればtrueが返されます 実装していなければfalseが返されます この機能から、やはり一般的には制
ボタンをクリックされた時にはActionListenerインタフェースのactionPerfomedメソッドがコールされるので、スクリプトではactionPerfomred関数を定義します。 public final static String SCRIPT = "function actionPerformed(event) {" + " print('Button Pressed\\n' + event + '\\n\\n');" + "}"; このサンプルではクラス中にスクリプトをハードコーディングしてしまっていますが、ファイルから読み込むようにしてもかまいません。 上記のコードではイベントが発生したことを標準出力に出力し、さらにイベントの情報も出力しています。 次にこのスクリプトがインタフェースの実装であることを指定します。 public InvokeInterfaceMethod
イメージに明度の変更など加工処理を加えた上で高速転送する方法の備忘録。 まずBufferedImageのgetRaster().getDataBuffer()メソッドを呼び、イメージのラスタデータを取得します。次に、そのラスタ配列要素から順に画素を取り出し、演算を行っていきます。getRGB/setRGBとは比較にならない速さです。 以下は、イメージを50%明るくして描画する例です。コードを見やすくするために演算部分をbrightenメソッドに切り出していますが、ここをインライン化することでさらに高速化できます。 この例は、転送元と転送先のBufferedImageが両方ともTYPE_INT_BGRタイプで作成されていることが前提です。 クリッピング処理を省略しているので、画像サイズをはみ出す座標を渡すとエラーになります。 public void drawBrightenedImage(
Captcha security check hisasann.com is for sale Please prove you're not a robot View Price Processing
クラスの依存関係のグラフを,Javaのソースコードから自動生成するようなWSHバッチを試作した。 四角で囲ったのがパッケージ。 点線の丸がインタフェース。 import, extend, implementsなどをいっしょくたにして,とにかく「使っているか」「呼び出しているか」だけに注目しているので,Judeで出力できるようなUMLのクラス図とはちょっと種類が異なる。 JudeやDoxygenでできること Judeには,パッケージのフォルダ階層を再帰的に辿ってクラス図を生成する機能はない。 Judeでパッケージ内のみでのクラス図生成をしたい場合は,ソースコードをインポートしたのち,プロジェクトビューで右クリック→クラス図を自動生成 を選ぶ。 judeでクラス図の自動生成 http://d.hatena.ne.jp/suusuke/2008060... UMLツールレビュー オープンソース、
実は筆者,Javaをずっと毛嫌いしていた。言語仕様が決めきめで「こんな風に書かなくてはいけない」というルールが多いからだ。また,言語仕様を覚えただけでは十分ではなく,フレームワークの勉強もしなくてはいけない。例えば,WebアプリではStrutsなどのフレームワークを勉強しなくてはいけない。大規模なアプリを作る場合,フレームワークを適用すると処理の仕方が統一され開発効率が上がるというメリットはたしかにそうだと思う。でも,理解しなくてはいけないことが多く,XMLの設定やエラーメッセージなどを記したApplicationResource.propertiesのKeyがプログラムの動作に関与したりするので,慣れないとどうも使いにくい。Javaの文法はコンパイラがチェックしてくれるが,複雑な設定ファイルの入力ミスが混乱の元になることがある。 7月22日 市内の小学校のコンピュータ室で児童を相手にロボ
わんくまでは珍しいJavaを中心とした日記です 目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 218 記事 - 0 コメント - 14580 トラックバック - 28 書庫 2008年7月 (1) 2008年2月 (2) 2008年1月 (10) 2007年12月 (9) 2007年11月 (5) 2007年10月 (27) 2007年9月 (25) 2007年8月 (27) 2007年7月 (29) 2007年6月 (15) 2007年5月 (23) 2007年4月 (37) 2007年3月 (8) 日記カテゴリ Java (rss) JavaScript (rss) SQL (rss) WEB (rss) その他 (rss) いろいろリンク The Herringroe Projects(Javaで色々) わんくまトップ 古い方のブログ http://w
sun.reflect.Reflection#getCallerClass( int )でメソッドの呼び出し元クラスを取得します。引数でスタックの深さを指定します。 サンプル: import sun.reflect.Reflection; public class GetCallerClass { public static void main( String[] args ) { new Master().call(); } static class Master { void call () { new Kitten().meow(); } } static class Kitten { void meow () { // 呼び出し元クラス名を得る。 System.out.println( "0 : " + Reflection.getCallerClass( 0 ).getName(
メソッドが「どこから呼ばれたか」を調べる方法についてのメモ。 Throwable#getStackTrace() Java 1.4 で、java.lang.Throwable クラスに getStackTrace() メソッドが追加された。これを呼ぶことで、例外スタックトレースの内容を取得することができる。 返されるのは java.lang.StackTraceElement[] で、0 番目が現在実行中のメソッド自身、1 番目が呼び出し元のメソッドを示す。例えば、次のようにして、呼び出し元のクラス名とメソッド名を出力することができる。 StackTraceElement e = new Exception().getStackTrace()[1]; System.out.println(e.getClassName() + "," + e.getMethodName()); ただし、いく
java.lang クラス Class java.lang.Object | +--java.lang.Class すべての実装インタフェース: Serializable public final class Classextends Objectimplements Serializable クラス Class のインスタンスは、実行中の Java アプリケーションのクラスおよびインタフェースを表します。同様にどの配列も、同じ要素型および次元数を持つ配列によって共有される Class オブジェクトとしてリフレクトされるクラスに属します。Java のプリミティブ型 (boolean、byte、char、short、int、long、float、double) のほか、キーワード void も Class オブジェクトで表されます。 Class には、public コンストラ
PDE(Processingの開発環境)を使っている人の中には、1つのスケッチ内で複数のタブを使っている人もいるかもしれません。複数のタブを使う理由としては、スケッチ本体クラスの他に別のクラスをつくるとき、ファイル(タブ)が分かれていた方が開発しやすいからだと思います。ちなみに、別のタブを開いた場合、ファイル内容は「タブ名.pde」という名前でスケッチのディレクトリに保存されます。 もしかしたら勘違いをしている人がいるかもしれませんが、PDEの標準の仕様では、複数のタブを開いてクラスを書いても、1つのタブの中にクラスを書いても、コンパイル結果は同じになります。どういうことかというと、複数のタブを開いて別のクラスを作っても、そのクラスはスケッチ本体クラスのインナークラスとして結合されるのです。別の言い方をすると、スケッチのディレクトリ直下にある「*.pde」ファイルは、全部結合された後、コン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く