java

Javaプログラミングの処方箋 - 宇野るいも, arton

Javaプログラミングの処方箋 (Programmer’s foundations)作者: 宇野るいも,arton出版社/メーカー: 翔泳社発売日: 2004/07/16メディア: 大型本購入: 2人 クリック: 53回この商品を含むブログ (19件) を見る★★★★☆ これも定期的に読み直したい。金、土、日と結…

コーディングの掟(最強作法) 現場でよく見る不可解なJavaコードを一掃せよ! (開発の現場セレクション) - arton, 宇野るいも

コーディングの掟(最強作法) 現場でよく見る不可解なJavaコードを一掃せよ! (開発の現場セレクション)作者: arton,宇野るいも出版社/メーカー: 翔泳社発売日: 2008/09/18メディア: 単行本(ソフトカバー)購入: 29人 クリック: 348回この商品を含むブログ (5…

配列で制御するのはやめれ

幾つかの値を操作しながら表示用のデータを生成したい場合。 public void hogehoge() { String[] a = new String[length]; String[] c = new String[length]; String[] d = new String[length]; int[] e = new int[length]; int[] f = new int[length]; bool…

String#indexOf

通常やる事はないんだけど、from にマイナスを指定するとエラーで落ちるもんだと思い込んでた。0 に置き換えられるのか。 fromIndex の値に対して制約はありません。負の値の場合は、0 の場合と同じ結果になり、 String#indexOf ソースを見てみる public int…

GANYMEDE でパースペクティブの切り替えを早くする方法

java1.4 + eclipse3.2 で開発してたんだけど、ちょっと時間が空いたので java1.6 + eclipse3.4 にしてみた。けど、なんだかすごく重い・・・。特に java とか debug とか cvs のパースペクティブに切り替え変えるのが 2、3秒はかかる orz 。全体的にももっさ…

Arrays#asList

ほとんど使うこと無いんだけど、Java 1.4 だと List list = Arrays.asList(new Object[]{"a","b","c"}); Java 1.5 だと List list = Arrays.asList("a","b","c"); この差はでかいだろー。お手軽感が違う。 そして正直しらなかったインスタンスイニシャライザ…

taglib

最近 taglib 作ってるんだけどなかなか面白い。オラ、ワクワクしてきたぞぉー。

Ruby は仕事じゃないから楽しい

一部だけ切り取り。 Javaをワクワクしながら使う人が少ないのは、Javaが仕事で使う言語だからだと思います。 ひがやすを blog 確かにそうだよなぁ。僕が仕事のメインで Ruby を使うことは(今のところ)会社を変えないと無理な気がしてるし、日頃は開発のサポ…

子タグから親タグのカウンタを見て繰り返し回数を取得する

taglib で繰り返しの出力を行いたい際に、何回目のループなのかを子タグが知る方法が無いのものとかと試行錯誤。Google 先生に聞いてもこれと言って教えてくれなかったので色々やってみた。 例えばこんな感じで属性を作って指定すれば何回目か分かる。 <n:table border="1"> <% f</n:table>…

Collections.sort

結構長いこと Java で仕事をしているんだが・・・Collections.sort があることを初めて知った・・・orz まじで恥ずかしい。 個人的にメソッドの戻り値を List で返すのは何が入っているのか分からないので(Java 1.4だし) 配列で返すようにしてます。ローカル…

JUnit を使ってテストする

「JUnit を使ってテストするための三つの方法」なんて釣りタイトルにはしませんよっと。Ruby の様な動的言語だと Mock を作りやすいからテストケースを作りやすそうなんだが、静的言語の Java だとなかなか作りにくい。JUnit を使って精度を上げたいという気…

eval

Java の標準ライブラリで eval できるものが欲しい・・・単純な計算式と真偽の判定だけでいいから・・・

HashSet

メンバに HashMap を持っていて、 HashSet#add(o) では HashMap に対して o をキーにこれまたメンバの Object を値として格納しているだけの単純な作りなことにビックリ・・・。 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.</e></e></e>…

HashMap#put のソースを読む

ちょっと疑問があったので調べていたのだが、ソースも公開されている事だしちょっとずつ Java のソースを見ていこうと思う。仕事では JDK1.4 だけど読むのは JDK5.0 にする。今更ながら結構違うのよね。ジェネリックスが登場してソースコードも結構修正され…

Class.forName で DB アクセスできるようになる理由

Java の研修で DB(だいたいMDBかな) にアクセスするプログラムを作ることになったとき、講師はほぼ 100% 「JDBC Driver を使用するためには Class.forName を使用します」と言うはず。ただ、呪文のごとく。 で、Class.forName の API を見てみる。 forName(S…

アノテーション その1

アノテーションのパラメータが取れないからおかしいなと思ったら RetentionPolicy.RUNTIME の指定が無かったのか。Wikipedia にまとめてあったので引用 http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%8E%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3 @Ret…

label を使って多重ループから一気に抜ける

まじか!知らなかった・・・orz 何年 Java やってるんだ・・・ orz label: //外側のwhile文にラベルをつける while (true) { while (true) { if (条件式) break label; } } 3重のループだって抜けられちゃう! label: for (int i = 0; i < 10; i++) { for (in…

メソッドを再定義した後、元に戻す

まだ試せていないが、javassist を素直に使った方が良いみたいだ。独自にやろうとソースを見てみたが・・・見ても分からない orz -- 追記 試してみた -- package test; class Person { /** */ private String name_ = null; /** * @param name */ public Per…

プリミティブ型を引数に取るメソッドをリフレクションで呼び出す その2

Class[ ] で渡してる型と Object[ ] で渡してるパラメータの型が違ってただけだった・・・

プリミティブ型を引数に取るメソッドをリフレクションで呼び出す

おっかしいなぁ、、、会社では boolean を引数に取る場合に new Boolean(true) を渡しても失敗してたんだけどなぁ・・・うまくいった。会社は 1.4 で家では 1.6 なのが関係あり?タダのロジックミスか?明日確認。 import java.lang.reflect.Method; public …

eclipse のオートコンプリート

List を Ctrl + Space でオートコンプリートした場合に List って、<E> が自動でつくのをやめたい。 だれか助けて!</e>

今更だけどジェネリックス

Number 型だけ格納できるリストを生成 ArrayList list = new ArrayList(); list.add(new Integer(0)); list.add(new Long(0)); list.add(1); これ↓をしたい為に↑をやってる感じが鬱だ for(Number number : list) { System.out.println(number.intValue()); }…

seasar

Seasar入門 はじめてのDI&AOP作者: 須賀幸次,木村聡,西川麗,高安厚思,白井博章,椎野峻輔,岡薫,藤村浩士,ひがやすを出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/02/25メディア: 大型本購入: 7人 クリック: 51回この商品を含むブログ (60件) を…

Java 6.0 リリース

http://java.sun.com/javase/ja/6/download.html さっそくインストールだ!

viPlugin

eclipse で 設定 -> エディタ -> テキスト・エディタ -> アクセシビリティ 「カスタム・キャレットの使用」「太いキャレットを使用可能にする」 のチェックを外してしまうと 入力モード、コマンドモードともにカーソルが細くなってしまう。

viPlugin 1.13.3 その2

検索ロジック直しちゃったよ。 大文字が混ざるときだけ ignorecase で検索。

viPlugin 1.13.3

eclipseにviを組み込めるプラグインの新バージョンがリリースされました。 http://www.satokar.com/viplugin/index.php いくつかバグ修正と新機能があるようですが これと言って興味をそそるものは有りませんでしたね。 viアイコンをクリックした時の、 プラ…

オブジェクト指向について考えてみる

入社して以来ずっとjavaに浸って数年になるが 未だにかっちょいい自信をもったソースが書けない。 もちろん、常に「現状での最善」は尽くしており スキルも着実に上がって来ていると思う。 でも、プロジェクトの中心人物である人のソースを見たりすると 「ん…

SAX

毎日一つずつ新しい事に挑戦している気がする今日この頃。 まぁ、良い事だ。 今日はSAXについて勉強。 http://www.hellohiro.com/xmlsax.htm 単にXMLを読むのではなくて、 XMLを読みながらDOMを生成していく。 DocumentBuilderを使うとやたらとメモリを食う…

viplugin 1.13.1

http://www.satokar.com/viplugin/ もうすぐ年越しですが、 viplugin 1.13.1 をちょこちょこといじって自分仕様に変えてました。 クラスファイルがあるので・・・(以下略) Eclipseを2系から3.1に上げたときに viplugin 1.12.3 の挙動が怪しかったのでさく…