Java
Pleiades All in One 日本語ディストリビューションは至れり尽くせりな内容で、3.3の時はこれしか使っていなかった感じすらする。 で、Ganymede版もかなり充実してきた様子。非公式版のVisual Editorも入っているのがいい感じだ。
Windows 64bit版はGanymede Releaseに含まれていないのね・・・ で、64bitのJVMで32bit版のGanymedeを実行しようとしたら、 --------------------------- Eclipse --------------------------- JVM terminated. Exit code=-1 -Dosgi.requiredJavaVersion=1.5…
もう実行すらしなくていいや。 public class YunoInJava { static class ひだまりスケッチX365来週も見てくださいね {} int X = 365, _ = 365; ひだまりスケッチX365来週も見てくださいね 来週も見てくださいね = null; int hidamari = X / _ / X < 来週も見…
きもい呼び方確かにきもいけど、 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 {}…
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:…
書いてみた。 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>…
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サブクラスを実装しないことが最善です。 実装するすべてのチ…
文字列を%<16進数>形式にエスケープする。 - うなの日記のプログラムを弄ってみる。 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>…
なんか勘違いしてるプログラムを見た。 BufferedReader in1 = null; BufferedReader in2 = null; try { ... } finally { if (in1 != null) in1.close(); if (in2 != null) in2.close(); } 確かにfinallyブロックにはほとんど必ず入る*1けど、イコールfinally…
最近高専時代の友人*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>…
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…
今日聞いた話だと発売日は延期みたい。来年の5月だとか。 これで邦訳版も伸びるわけですね・・・あと、Joshua Blochのサイン入りEffective Javaが積んであったけど、他にほしい本がいっぱいあったから買わなかった。 つらい・・・
今日は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 セキュリティを一通り読み終えた。この本を一年前に買ってたら・・・ こっちでもいいけど、やっぱり印刷物は違うね。
CopyUtilsのtoCopyableに配列を渡したらNoSuchMethodExceptionが発生した。 getMethodで怒られてるみたいなんで、とりあえず配列がどんなメソッドを持ってるか確認してみた。 import java.lang.reflect.Method; public class Test { public static void main…
普通にString#formatにあったという(コメント欄参照)。 J2SE5.0からprintfが導入されたけど、何気にsprintfはない。ってことで、簡単実装。 // StringUtils的なクラスに public static String sprintf(String format, Object...args) { StringWriter str = n…
Cloneableはお世辞にも使いやすいとはいえないので、もうちょっと使いやすくしようと試みる。 public interface Copyable<E extends Cloneable> extends Cloneable { E copy(); Object clone() throws CloneNotSupportedException; } このインターフェイスを実装したクラスは、cop</e>…
外側のクラスの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 =…
にJDBCで接続してごにょごにょ。なんというか、変態的な組み合わせだ。
がすごく重い・・・ なんだこれ、前はこんなに重くなかったぞ。
ResultSet - ぐるぐる〜への反応への反応。 あと、ResultSet にはカーソル的な更新の API もかねているのと、その際のエラー情報取得とかあったり。 JDBC と Collection API - odz buffer あー、カーソルとしてのResultSetを完全に失念してました。ただ、個…
JDBCということで、ResultSetについて。SELECTした結果を素直にJavaの世界に持ってくるならばResultSetという名前はいいと思うんだけど、現実的にはResultListとか、ResultTableのほうがいいんじゃないかな。 なぜなら、Setセットとして扱うような処理はSQL…
"string".equalsってバッドノウハウなの? - 神様なんて信じない僕らのためにより、NullPointerExceptionについて。 NullPointerExceptionは偉大*1だけど、 NullPointerExceptionでnullを検知しようとする考えがそもそも間違い、な気がする。 "string".equal…
Javaでtimesのつづき。 前回はJavaでRubyのtimesっぽいものを作って++を隠蔽したけど、まぁお世辞にも使いやすいとは言いがたい。一番の問題は、回数数えるだけなのに記述量が多いことだと思う。 ということで、今回は記述量もそれなりになるように、Python…