2006-06-01から1ヶ月間の記事一覧
Listインタフェースの実装はめんどかったので辞めます。Eclipseの"Generate Delegate Method"コマンドを使う手もありますが、その後の修正を考えるとやっぱりめんどい。で、代わりにAbstractListを使ってみます。こいつは、オレみたいなめんどくさがり屋のた…
では、どうやって実現すればいいか考えてみます。主な操作自体はArrayListにすでに実装されているので、現在例外となっている範囲を超えた値に対する振る舞いだけ追加するのが簡単そうです。ってことで、真っ先に浮かぶのがArrayListを継承。が、せっかくCol…
List<String> a1; ArrayList<Object> a2; ArrayList a3;こんな感じでListに関する変数が三つ定義されてるとします。さて、以下でコンパイルエラーになるのはどれ? // 初期化 a1 = new ArrayList<String>(); a2 = new ArrayList<String>(); a3 = new ArrayList<String>(); // メソッド呼び出し a1.add</string></string></string></object></string>…
perlの配列は使いやすいです。以下のコードはなんの疑問もなく直感通りに動きます。 my @data = (1, 2, 3); print $data[4], "\n"; # 範囲を超えて参照してもよい print scalar(@data), "\n"; # 範囲を超えて参照しても大きさはそのまま print $data[-2], "\…
Tigerと言えば、OS X 10.4のことですか? それとも、Java 5.0のことですか?
可変長引数の例を調べるのにJava SEのコードを漁っていたんですが、java.util.Arraysで以下のようなメソッドに出会いました。 public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); }ところが、java.util.ArrayListのコンストラクタは、Collectio</t></t></t>…
Java 5.0は引数の可変長もサポートしました。 void hogehoge(Object... o); hogehoge(o1, o2, o3); hogehoge(o1, o2, o3, o4, o5);これは糖衣構文で、以下のように配列とみなされます。 void hogehoge(Object[] o); hogehoge(new Object[] {o1, o2, o3}); ho…
チケットゲットしました。最後まで戦い抜く所存です。
すっかり見逃していたのですが、import staticなんて機能が追加されてるみたいです。perlで言うExporterの機能です。import static java.lang.Thread.sleep; って書いてやれば、Thread.sleep(16) って書いていた部分を、sleep(16)と書けるようになります。st…
アノテーションについて調べると宣言してから大分経ちますが、やっと調べました。アノテーションはコードに注釈を付ける機能で、コメントとかjavadocと同等の位置づけです。ただ、その注釈がプログラムから読める書式となってるのがポイントっぽいです。例え…
タイトルの通りなんですが、見つからなくて困ってたわけです。そしたら、ありました。ADC Member SiteのDownloadsのJavaのコーナー*1から、J2SE 5.0 Release 4 Developer Documentationを落としました。この中のJ2SE50Release4Documentation.pkgを実行すると…
WTPでtomcatを実行すると、 javaに-Dcatalina.base="workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0" なんてものを渡してくれます。すると、shared/lib の在処もこれに引きずられてしまうわけです。必要であれば /usr/local/tomcat/shared …
ついでにClassCastExceptionも出しておきました。ドッペルゲンガーと紹介されてるやつです。内部でキャストのテストを行うcastMe()メソッドを持つインタフェースと、その実装クラスを定義します。 /* TestInterface.java */ public interface TestInterface{…
クラスローダーとJ2EEパッケージング戦略を理解する の解説がわかりやすいです。servletに初めて触ったときからモヤモヤしていたClassNotFoundExceptionの正体がちょっとだけ見えました。 public class MyGlobalClass{ public MyLocalClass getMyLocalClass(…
Pro EJB 3: Java Persistence API (Pro)Mike Keith Merrick Schincariol オレンジニュースで買おうと思ったら、リンクが無くなってました。ありゃりゃ( ̄ー ̄?)
Javaのクラスアンロード(Class Unloading)と言うタイトルの、クラスローダーの解説です。ふむふむ。
これを試しました。便利ですね〜。単一クラスのロードまでしかできなかったんで明日以降もうちょっといじります。Eclipseの設定やら何やらでハマって時間かかりましたorz WTPの「Move To Workspace」とか「Move To Metadata」ってなんなんだろ?? 誤って選…
出席してきました。 Seasar のコミッタの方もたくさんいて、刺激的でした。次回までにもうちょっと Java EE 関連触っておこうかと思います。飲み会で調子に乗って id:t-wada さんにダメージを与えてしまいました。 hirataraさん「t-wadasさんは哀愁を背負っ…
クラッシュバンデクーはLispの上に書かれていたみたいです。 ゲームというと、私は PlayStation の『クラッシュバンデクー』を見た時、「こんなことがゲームでできるんだ」ってびっくりしました。あれって、専用の言語で書かれているそうですね。 あれは、GO…
Seasar眺めてみました。ありゃりゃ、SeasarってHttpServletに依存してたのか。・・・と思ったら。Servlet非依存になったそうです。2.4系を落とせばよかったんですね、さすが〜。痒いとこに手が届くと気持ちいいです。
こんな記事ですが、ちょっと目に留まりました。 Seasar2では,Javaプログラミング言語の文法が含む「interface」の「型」と「名前」の情報に基づき,自動的にモジュール相互を接続する。...ひが氏はこの考え方を「設定より規約を重視する(Convention over C…
perlで書くとこうです。 use strict; open(IN, 'huge.txt'); while(<IN>){ while(/key?s*=?s*'([?w?-]+)'/g){ print $1, "?n"; } } close(IN);で、java使って書いてみたわけです。 import java.io.*; import java.util.regex.*; class Test{ static final privat</in>…
ところで、前のエントリのperlsubで、気になる一文を見つけたのです。 Note, however, that the ``&'' is NOT optional when you're just naming the subroutine, such as when it's used as an argument to defined() or undef(). え、definedとundefって、…
perlも忘れてないですよ(´m`)。次のコードの結果に、納得できますか? sub my_print{ print @_; } sub test1{ my_print;} sub test2{ &my_print;} test1("test1\n"); test2("test2\n"); 【結果】 test2納得出来たらかなりの通。perlsubには以下のように書い…
皆さん、ソースコードは下手な小説より楽しいですよヽ( ´-`)ノ。今日はJakarta commonsより、padding()です。文字padCharをrepeat回だけ繰り返した文字列を返すだけの関数です。 private static String padding(int repeat, char padChar) { // be careful o…
StringBuilderはStringBufferの高速版です。新しい人はこっちを積極的に使いましょう。
絶対領域をおかしてしまうとどうなるのか(゜ー゜)。先の方式を使うと、Stringオブジェクトを書き換え可能になります。次のメソッドを定義します。 /* strToの中身をstrFromにする。 ただし、短い文字列に変更しようとすると ArrayIndexOutOfBoundsException …
privateのフィールドは操作出来ないことになっているが、100%絶対と言うわけでもないみたいです。 import java.lang.reflect.Field; /* イミュータブルなクラス */ class PersonalData{ private String name = "Hiratara"; public String toString(){ return…
Jakarta Commons クックブック―Javaプロジェクト必須のレシピ集ティモシー・M. オブライエン Timothy M. O’Brien 長瀬 嘉秀 commons本を購入しました。ついでにLangのソースも取ってきたので、しばらく楽しめそうですヽ(゜▽、゜)ノ
初期化をコンストラクタの外に用意する手法、現場では多い気がするが? class TestSuper{ TestSuper(){ this.init(); } void init(){ System.out.println("initialize Super fields"); } } class TestSub extends TestSuper{ TestSub(){ this.init(); } void…