Java

ジェネリクスでユーティリティ

Javaの理論と実践: 疑似typedefアンチパターンちょっと古めの記事だけど役に立つ内容なので紹介。「継承を使って疑似的にtypedefのようなものは実現できるけど、ぜんぜん駄目だから使うな」って話。で、それだけじゃなくて型推論を活用して、安全にタイプ量…

Javaでtimes

最近++に関する話題が多いので、Javaで++の隠ぺいを試みる。 public class CountUtils { public static abstract class InnerProc<E> { public abstract proc(int i); protected E getResult() { return null; } } public static <E> E times(int times, InnerProc<E></e></e></e>…

POI

"Apache POI 3.0.1"登場 - 読み込みだけだがVisioへの対応を実現 | エンタープライズ | マイナビニュースPOIってまだ生きてたのか・・・ Open XMLやODFに対応してくれるとありがたい。

Java魂4章

まだまだ続く、Java魂の4章、「コレクション」のおかしな部分の紹介。 まずは、4.2.2 O記法(Big O Notation)より。 リストに100人の人が含まれていると、最悪の場合には1人の人を探すのに99回チェックを実行する必要があります。 4.2.2 O記法(Big O Notation…

Java魂3章

前回、前々回に引き続き、Java魂の3章、「不変な型」のおかしな部分の紹介。 まずは3.1.1 不変な型の作成から、3.1.2 不完全な不変型。以下のコードは、不変ではない例として紹介されている。 package oreilly.hcj.immutable; public class ImmutablePerson …

Java魂2章

前回に引き続き、Java魂の2章、「ファイナル(final)ストーリー」のおかしな部分の紹介。この章は1章ほどおかしな部分は多くない*1。 まず、2.6 finalクラス*2。 実は、Introspectorを拡張してより機能豊富なクラスを構築するつもりでした。しかし困ったこと…

Java魂1章

ということで1章、Javaの復習のおかしな部分の紹介。長文注意。 まずは、1.1.1 ポインタに関する不変的な問題にて。 実際には、JavaはC++で言うところの参照を使用しています。 1.1.1 ポインタに関する不変的な問題より ・・・しょっぱなからこれ。Javaの参…

Java魂―プログラミングを極める匠の技

Amazonでの評価が良かったんで、買ってみた。・・・が、これは微妙。おかしなところの指摘の目次 Java魂1章 Java魂2章 Java魂3章 Java魂4章

ジェネリクスとか、enumとか

特に意味は無いけど、ジェネリクスとかenumを使ってみよう。 // 関数のインターフェイス public interface Function { Y apply(X x); } まぁ、これはどこにでもあるようなインターフェイス。これを使って、ループを抽象化*1してみる。 何をやるかというと、…

UDoc

【ハウツー】クラス構造がまる見えに! UDocでJavaをダイナミックに分析する (1) JavaDoc、バイナリファイル、ソースコードからクラス図を生成 | エンタープライズ | マイナビニュース 便利そう。暇があったらいろいろいじりたいな。

JavaSE6の日本語ドキュメント

いつの間にか日本語ドキュメントが完成してました。 Oracle Technology Network for Java Developers 追記 Oracle Technology Network for Java Developers こっちのほうがいいか・・・

アノテーション

アノテーションの構文は結構独特で、触ったことのない人はソースをみると困惑すると思う。 まず、手始めにこんなアノテーション public @interface Hoge { int value() default 0; } ・・・これはJavaなのか?いや、Javaですよ? アノテーションは@interface…

文字列の連結

Javaで文字列の連結の方法にはいくつかある。まずはそれらの方法をまとめ、最後に新しい方法を考えてみる。 +演算子 一番直感的なのは、+演算子による連結だろう。しかし、これはコンパイル時定数同士の連結でない限り最も効率が悪いので、使うべきではない…

プロンプト風ペイン(1)

Swingのコマンドプロンプト風のペインを探しているんだけど、見つからない・・・ ということで、ちょっと作ってみようかと思う。 まずは何を継承するかだけど、普通に考えてJTextComponent系列だと思う。今回はJTextAreaをスーパークラスとして作ってみよう…

メソッドの呼び出し履歴を見る

題名そのまんま、メソッドがどこからどうやって呼び出されたかを見るユーティリティーを作ってみた。簡単なデバッグには結構使えるかも。 public final class LineInfomation { private LineInfomation() {} public static void dispLineNumber(PrintStream …

古い環境を入手する

JavaではOracle Java Archiveから古い環境を入手することが可能。

Javadocの書き方

Javadoc、活用していない人も結構いると思うけど、なんとなく使っている人も結構いると思う。そこで、今回はJavadocについてまとめてみます*1。 Eclipse*2の使用を前提としてるんで、その辺は注意してください。 Javadocとは Javadocとは一般に、Javaのソー…

SecureString

同じ研究室の某M君の研究だけど、なかなか興味深い。彼はRubyでの実装を頑張っているけど、ちょっとJavaで似たようなもの(あくまで似たようなもの)を作ってみたり。 // セキュアな文字列クラス public abstract class SecureString { // (1) private final S…

JNI本購入

Javaではunsignedが使えないし、かといってBigInteger等のクラスを使うと効率が犠牲になってしまう・・・ ってことでJNI(Java Native Interface)を使ってみるか、と。 さて、一体どれくらいC++の機能をサポートしているかが気になるなぁ。templateやRTTIは使…

JavaでPlayStationのエミュレータ

【レポート】JavaOne 2006 - PlayStationエミュレータをJavaで実装 (MYCOMジャーナル) ・・・すごいなー、これのソース公開しないのかなー。本とかにまとめても売れると思うんだけどなぁ。 例えばオブジェクト指向での実装によりRAM上のR3000コードをオーバ…

『増補改訂版Java言語で学ぶデザインパターン入門マルチスレッド編』無料プレゼント

『増補改訂版Java言語で学ぶデザインパターン入門マルチスレッド編』 - 結城浩のはてな日記 ですって。 前の版も持ってるけど、なかなか惹かれる内容なので応募してみたり。 ちょうど今C++でスレッド関係をクラス化しているから欲しいなぁ。 まぁあたらなく…

Swingでスキン

IBM からのお知らせ : 申し訳ございません。該当するURLのページが見つかりませんでした。 知らなかった・・・ Javaでスキンか〜 面白そうだな。

OracleのJDBC

OracleのJDBCはMySQLのとは違ってデフォルトでは返ってくるResultSetでlastメソッドとかが使えない・・・ Stringにマッピングするのに2000件×10項目で0.5秒。 まぁこんなもんか。

オブジェクト指向

会社では始め簡単なクラス図(クラス1個!)を渡され、こんな感じのJavaで作れる?見たいな感じで仕事が始まったんだけど(7/19)、いまや「こんな機能作って。」で仕事が来る。 だからプログラム設計もある程度自分で出来て、かなり楽しい。 やっぱりJavaは楽し…