Java

Pleiades All in One 日本語ディストリビューション

Pleiades All in One 日本語ディストリビューションは至れり尽くせりな内容で、3.3の時はこれしか使っていなかった感じすらする。 で、Ganymede版もかなり充実してきた様子。非公式版のVisual Editorも入っているのがいい感じだ。

Windows 64bit版

Windows 64bit版はGanymede Releaseに含まれていないのね・・・ で、64bitのJVMで32bit版のGanymedeを実行しようとしたら、 --------------------------- Eclipse --------------------------- JVM terminated. Exit code=-1 -Dosgi.requiredJavaVersion=1.5…

ゆの in Java?

もう実行すらしなくていいや。 public class YunoInJava { static class ひだまりスケッチX365来週も見てくださいね {} int X = 365, _ = 365; ひだまりスケッチX365来週も見てくださいね 来週も見てくださいね = null; int hidamari = X / _ / X < 来週も見…

anonymous class特有のメソッド呼び出しの使い道

きもい呼び方確かにきもいけど、 public final class Test { static interface Hoge {} public static void main(String[] args) { Hoge h = new Hoge() {{ System.out.println("init"); }}; } } より、 public final class Test { static interface Hoge {}…

java.util.ArrayListとstd::vectorとかローカル変数の型とか

ArrayList vs Vector (vs LinkedList) - odz bufferとかvectorとlistのメモリ効率 - 神様なんて信じない僕らのためにとか色々から。 とりあえず、JDKについてるsrc.zipでのArrayListの実装と、gcc4.1.2のvectorの実装を見てみた。 まずJavaから。 JavaのArra…

じゃんけんプログラム

さて、じゃんけんプログラムで多態性を実現するならどんな感じだろうか? とりあえず、グーとチョキとパーしかないんだから、enumを使ってみた。 public enum HandShape { ROCK("グー") { public void judge(HandShape enemy) { switch (enemy) { case ROCK:…

Listをsplit

書いてみた。 public final class ListUtils { private ListUtils() {} public static <E> List<List<E>> split(List<E> list, E delim, SplitMode mode) { if (list == null || mode == null) { throw new NullPointerException(); } List<List<E>> result = new ArrayList<List<E>>(); Li</list<e></list<e></e></list<e></e>…

case

JNI Java Native Interface プログラミングのサンプルでstructConverterってのがあるんだけど、それがコンパイルできなかった。 原因は以下のようなコード。 public class SwitchTest { public static final int HOGE = 0; public static void main(String[]…

独自例外

上のように書くとアレか、独自例外はちゃんと考えて作って欲しい、と読めてしまうな。 個人的には、独自例外はあまり定義したくない/して欲しくない派*1なんだけど、これは意見が分かれるのかも。 例外クラスってExceptionとかRuntimeExceptionを継承するだ…

例外

Javaにはチェックされない例外と、チェックされる例外があって、これの使い分けは難しい。 Effective Javaでは、チェックされない例外をさらに実行時例外*1とエラー*2に分けていて、 新たなErrorサブクラスを実装しないことが最善です。 実装するすべてのチ…

StringBuilderとかString#formatとか例外とか

文字列を%&lt;16進数&gt;形式にエスケープする。 - うなの日記のプログラムを弄ってみる。 public static final String escape(String string, String encode) { byte[] bs = null; try { bs = string.getBytes(encode); } catch (UnsupportedEncodingExcept…

クロージャ

JavaSEで入るとか入らないとか含めまだ揺れそうなクロージャだけど、個人的にBGGAの public static <V> void for each(Iterable<V> collection, { V => void } block) { for (V v : collection) block(v); } が気に入っている。 eachメソッドはジェネリックメソッ</v></v>…

finally

なんか勘違いしてるプログラムを見た。 BufferedReader in1 = null; BufferedReader in2 = null; try { ... } finally { if (in1 != null) in1.close(); if (in2 != null) in2.close(); } 確かにfinallyブロックにはほとんど必ず入る*1けど、イコールfinally…

Javaコードスタイル

最近高専時代の友人*1とJavaのコードスタイルの話をしたら、ちょうど同じ頃にCコードスタイルがあがってた。 てことで便乗(?)して議論の内容をちょっと紹介。 まず、Javaには開き中括弧を独立行に書くスタイルは合わないよねー、とか、匿名クラスってどう書…

ジェネリクスで複数のインターフェイスを指定

って出来たんですね。知らなかった・・・ interface I1 {} interface I2 {} // こんな感じ class C1 <E extends I1 & I2> {} class C2 {} // クラスを指定する場合はextendsの直後に指定する class C3 <E extends C2 & I1 & I2> {} TypeParameter: TypeVariable TypeBoundopt TypeBound: extends Class</e></e>…

Sun Tech Days 2007 in Tokyo

N700系のグリーン車でさっき帰宅。 参加したのは、 1日目 基調講演 JavaSE6 Top 10 features, JavaSE7 and OpenJDK Java Persistence API: Simplifying Persistence JavaFX Scripting and JRuby 2日目 基調講演 Real-time Java Performance Tuning: GC frien…

Effective Java

今日聞いた話だと発売日は延期みたい。来年の5月だとか。 これで邦訳版も伸びるわけですね・・・あと、Joshua Blochのサイン入りEffective Javaが積んであったけど、他にほしい本がいっぱいあったから買わなかった。 つらい・・・

Cross Community Conference

今日はCross Community Conferencに行って来た。 誰とは言わないけど、MADなんか作ってきてる人とかいて面白かったよー。 明日と明後日はTech Daysに参加。

なんとなくダイアログボックス

ダイアログボックスって出すの面倒だよなー、とか思って。 public enum DialogBox { MESSAGE("メッセージ", ButtonType.DEFAULT) { public DialogResult show(Component p, Object msg, String ttl, ButtonType t) { int result = showConfirmDialog(p, msg,…

Java セキュリティ

Java セキュリティを一通り読み終えた。この本を一年前に買ってたら・・・ こっちでもいいけど、やっぱり印刷物は違うね。

配列のclone

CopyUtilsのtoCopyableに配列を渡したらNoSuchMethodExceptionが発生した。 getMethodで怒られてるみたいなんで、とりあえず配列がどんなメソッドを持ってるか確認してみた。 import java.lang.reflect.Method; public class Test { public static void main…

Javaでsprintf

普通にString#formatにあったという(コメント欄参照)。 J2SE5.0からprintfが導入されたけど、何気にsprintfはない。ってことで、簡単実装。 // StringUtils的なクラスに public static String sprintf(String format, Object...args) { StringWriter str = n…

Cloneable

Cloneableはお世辞にも使いやすいとはいえないので、もうちょっと使いやすくしようと試みる。 public interface Copyable<E extends Cloneable> extends Cloneable { E copy(); Object clone() throws CloneNotSupportedException; } このインターフェイスを実装したクラスは、cop</e>…

外側のクラスのthis

外側のクラスのthisの取り方ってあんまり知られてない・・・? public class Hoge { private Hoge(Piyo p) { ... } ... } public class Piyo { public Piyo self() { return this; } public void method() { new Thread() { public void run() { Hoge hoge =…

SQL Server 2005

にJDBCで接続してごにょごにょ。なんというか、変態的な組み合わせだ。

JFileChooser

がすごく重い・・・ なんだこれ、前はこんなに重くなかったぞ。

ResultSet(2)

ResultSet - ぐるぐる〜への反応への反応。 あと、ResultSet にはカーソル的な更新の API もかねているのと、その際のエラー情報取得とかあったり。 JDBC と Collection API - odz buffer あー、カーソルとしてのResultSetを完全に失念してました。ただ、個…

ResultSet

JDBCということで、ResultSetについて。SELECTした結果を素直にJavaの世界に持ってくるならばResultSetという名前はいいと思うんだけど、現実的にはResultListとか、ResultTableのほうがいいんじゃないかな。 なぜなら、Setセットとして扱うような処理はSQL…

NullPointerException

"string".equalsってバッドノウハウなの? - 神様なんて信じない僕らのためにより、NullPointerExceptionについて。 NullPointerExceptionは偉大*1だけど、 NullPointerExceptionでnullを検知しようとする考えがそもそも間違い、な気がする。 "string".equal…

Javaでrange

Javaでtimesのつづき。 前回はJavaでRubyのtimesっぽいものを作って++を隠蔽したけど、まぁお世辞にも使いやすいとは言いがたい。一番の問題は、回数数えるだけなのに記述量が多いことだと思う。 ということで、今回は記述量もそれなりになるように、Python…