java

id:jackpot1014がアノテーションがよう分からんというのでサンプルツール作ってみた。

http://cynipe.googlecode.com/svn/trunk/csvmanager からチェックアウト出来るよ!作ったのはCSVの列番号をアノテーションでフィールドにマッピングしてくれる奴。イメージ湧かす用サンプルなんでString型にしか対応してません。ヘッダ行もまったく考慮して…

クラスの読み込み元の取得

ロードされているHoge.classのディレクトリの取得方法。 URL location = Hoge.class.getProtectionDomain().getCodeSource().getLocation();

enumに振る舞いを持たせる2?

前に書いたenumを使ったちょっとやり過ぎかと思われるswitchな実装について、しばらく使ってみてやはり良い!と思ったので個人的に思うとこを書いてみる。まず、一般的にenumにされるようなアプリケーションにおける定数というのは使いまわされる箇所が多い…

http://www.gradle.org/

gradle気にはなりつつも、なかなか使う機会が・・・。まぁ、めちゃくちゃ難しい構成管理とかしてる訳ではないし、とりあえずmavenでいいんだけども。でも色々と試してはみたいな。

enumに振舞を持たせる

表題のまんまなんだけどその場限りで済んでしまうような場合はこんなんでいいと思うんよね。 /** * なんかの種別を表す。 */ enum Kind { A { public Result apply(Param param) { // Aのばあい } }, B { public Result apply(Param param) { // Bのばあい }…

コンストラクタの代わりにstaticなファクトリメソッドの適用を考える

コンストラクタと違って下記の利点がある。 名前をつける事が出来る どんな状態のインスタンスを取得できるかメソッド名で判断させる事が出来る 毎回インスタンスを生成しなくてもいい Flyweightパターンに似ている コントロールされたインスタンスを渡す事…

Hibernate事始め getResultListってこれでいいのか・・・?

こんな感じでやってみたよー。 public class ProductDaoTest { private ProductDao dao; @Test public void test() { dao = new ProductDao(); dao.save(p(1)); dao.save(p(2)); dao.save(p(3)); dao.save(p(4)); Beans<Product> products = dao.selectAll(); System.</product>…

今更ながらのGenericsその1

JDK5から追加された機能のGenerics。今じゃもう当たり前のように使われているし、みんな便利だと思ってる。ところが実際にそのGenericsの機構を踏まえた上でAPIを提供する側-フレームワークの作成者など-の立場に立ってみると途端に…

enumでSingleton Pattern

こんな書き方出来るんだねぇ。ちょっと目から鱗。 enum Singleton { INSTANCE; public void something() { //なんか } }

String#split(String)の罠

String s = "a,b,c,,"; System.out.println(s.split(",")); の結果はなんと3が返って来る。5を返したければ以下のようにしないといけない。 String s = "a,b,c,,"; System.out.println(s.split(",", -1)); やー、これは罠だった。ソース読んでキヅイタヨ。まずAP…

全角数値がパースできる。

しらなかった・・・@@ @Test public void Convert() throws Exception { Assert.assertEquals(10, Integer.parseInt("10")); }1.4から出来るみたいね・・・

パフォーマンスチューニング

パフォーマンスチューニングの勘所を覚えたい。Javaに限ったことではなく、SQL、RDBMS等詳しくはなくてもいいけれども、症状によってあそこが怪しそうといった程度の目星が付けられるようになりたい。現状Javaにおけるパフォーマンスチューニングをするにし…

ドキュメンテーション

プログラマはドキュメントを書くのが嫌い。だと思うんだけど、ドキュメントってのはそもそもコードを日常語に訳したものなわけで。そこで思うんだけど、コンパイラとかがコードを解釈してJavadocに書き起こしてくれたらいいんじゃねーの?と。まぁ、それをコ…

ログレベルの分け方

ちょっとLog4Jについて、メソッド呼ぶ!以外の使い方をほとんど知らなかったので調べてみた。そしたらログレベルの分け方の指針?な感じのものまで発見して勉強になったw参考にさせて頂いたサイト 以下引用 fatal 想定外の状況で、アプリケーションの継続が…

テストDB作成ツール

学校の1年生がやっているオブジェクト指向研究会なる怪しげな宗教団体と一緒に、 提携課題で使えるツールを作ってみようかと。 提携課題で掲示板、ショッピングシステムなど作ったりするので、テストDB作成は不可欠なわけだ。ところが、どのチームも一生懸命…

Feature 'http://apache.org/xml/features/xinclude' is not recognized.

teedaを使ってみようと思って、ひがさんのBlogを参考にしつつ環境を整える。 ↓ Tomcat起動! ↓ わーい楽しみだなー ↓ [main] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/chura-example2] クラス org.seasar.teeda.core.webapp.…

XLSBeans

これ便利だなー。提携課題で使いたーい!とか思ったけどTigerか(´・ω・) POIとかJavaExcelAPIとかもあったけど、読み込むまでの処理を書かなくちゃならなくて若干不便だったけど、これはいいねー。Project Amateras http://amateras.sourceforge.jp/cgi-bin/…

キホンカラコツコツト

やっていくことにしよう。まずはTigerで導入されている機能の確認から!