Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

2006-06-01から1ヶ月間の記事一覧

ArrayListとperlの配列の違い 三夜目

Listインタフェースの実装はめんどかったので辞めます。Eclipseの"Generate Delegate Method"コマンドを使う手もありますが、その後の修正を考えるとやっぱりめんどい。で、代わりにAbstractListを使ってみます。こいつは、オレみたいなめんどくさがり屋のた…

ArrayListとperlの配列の違い 二夜目

では、どうやって実現すればいいか考えてみます。主な操作自体はArrayListにすでに実装されているので、現在例外となっている範囲を超えた値に対する振る舞いだけ追加するのが簡単そうです。ってことで、真っ先に浮かぶのがArrayListを継承。が、せっかくCol…

Generic型と継承

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>…

ArrayListとperlの配列の違い

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のことですか?

もう一つの"ArrayList"

可変長引数の例を調べるのに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…

L.L.Ring

チケットゲットしました。最後まで戦い抜く所存です。

import static

すっかり見逃していたのですが、import staticなんて機能が追加されてるみたいです。perlで言うExporterの機能です。import static java.lang.Thread.sleep; って書いてやれば、Thread.sleep(16) って書いていた部分を、sleep(16)と書けるようになります。st…

アノテーションとは?

アノテーションについて調べると宣言してから大分経ちますが、やっと調べました。アノテーションはコードに注釈を付ける機能で、コメントとかjavadocと同等の位置づけです。ただ、その注釈がプログラムから読める書式となってるのがポイントっぽいです。例え…

OS Xのsrc.jarはいずこ?

タイトルの通りなんですが、見つからなくて困ってたわけです。そしたら、ありました。ADC Member SiteのDownloadsのJavaのコーナー*1から、J2SE 5.0 Release 4 Developer Documentationを落としました。この中のJ2SE50Release4Documentation.pkgを実行すると…

WTPのtomcatで共通ライブラリが使えない

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(…

Java EE勉強会用の本

Pro EJB 3: Java Persistence API (Pro)Mike Keith Merrick Schincariol オレンジニュースで買おうと思ったら、リンクが無くなってました。ありゃりゃ( ̄ー ̄?)

Javaのクラスアンロード

Javaのクラスアンロード(Class Unloading)と言うタイトルの、クラスローダーの解説です。ふむふむ。

Seasar2お試し

これを試しました。便利ですね〜。単一クラスのロードまでしかできなかったんで明日以降もうちょっといじります。Eclipseの設定やら何やらでハマって時間かかりましたorz WTPの「Move To Workspace」とか「Move To Metadata」ってなんなんだろ?? 誤って選…

第20回 Java EE勉強会

出席してきました。 Seasar のコミッタの方もたくさんいて、刺激的でした。次回までにもうちょっと Java EE 関連触っておこうかと思います。飲み会で調子に乗って id:t-wada さんにダメージを与えてしまいました。 hirataraさん「t-wadasさんは哀愁を背負っ…

関数型言語でクラッシュバンデクー

クラッシュバンデクーはLispの上に書かれていたみたいです。 ゲームというと、私は PlayStation の『クラッシュバンデクー』を見た時、「こんなことがゲームでできるんだ」ってびっくりしました。あれって、専用の言語で書かれているそうですね。 あれは、GO…

Seasarって・・・

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には以下のように書い…

StringUtils.padding(int repeat, char padChar)

皆さん、ソースコードは下手な小説より楽しいですよヽ( ´-`)ノ。今日はJakarta commonsより、padding()です。文字padCharをrepeat回だけ繰り返した文字列を返すだけの関数です。 private static String padding(int repeat, char padChar) { // be careful o…

StringBuilder

StringBuilderはStringBufferの高速版です。新しい人はこっちを積極的に使いましょう。

privateは絶対領域か?(2)

絶対領域をおかしてしまうとどうなるのか(゜ー゜)。先の方式を使うと、Stringオブジェクトを書き換え可能になります。次のメソッドを定義します。 /* strToの中身をstrFromにする。 ただし、短い文字列に変更しようとすると ArrayIndexOutOfBoundsException …

privateは絶対領域か?

privateのフィールドは操作出来ないことになっているが、100%絶対と言うわけでもないみたいです。 import java.lang.reflect.Field; /* イミュータブルなクラス */ class PersonalData{ private String name = "Hiratara"; public String toString(){ return…

Jakarta Commons/Lang

Jakarta Commons クックブック―Javaプロジェクト必須のレシピ集ティモシー・M. オブライエン Timothy M. O’Brien 長瀬 嘉秀 commons本を購入しました。ついでにLangのソースも取ってきたので、しばらく楽しめそうですヽ(゜▽、゜)ノ

init()メソッド

初期化をコンストラクタの外に用意する手法、現場では多い気がするが? class TestSuper{ TestSuper(){ this.init(); } void init(){ System.out.println("initialize Super fields"); } } class TestSub extends TestSuper{ TestSub(){ this.init(); } void…