Java

annotationって継承できないの??

これはかなりショッキング! Annotation[] annotations = obj.getClass().getAnnotations(); っていうリフレクションが利用できるもんだから、AアノテーションとBアノテーションの親としてXアノテーションを用意すれば、多態が実現できていちいちif文書かな…

excelの行・列

excelをjavaで操作する必要が出たために久々にpoi使いました。 その中で、行オブジェクトから特定のセルを取得する際の引数がshortだったので、あれ、8bitで足りるの?なんてふと思って調べてみると列はIVってのが右端。えーっとIVっていくつ??ちなみに下…

log5j

googleからlog5jなるものがリリースされていた。単にGoogle Codeで公開しているだけっぽい。log5jという名前からGoogle発だと勘違いしていまいました。spinn3rという会社の作みたいです(2010.2.24)。 http://code.google.com/p/log5j/ オレオレ翻訳で概要…

ちょっとしたことなんだけど

例えば1,2,3,4,5,6,6,6という数字がつまった配列があった時、それぞれ偶数なのか奇数なのかを判断してコンソールに出力する、といったプログラムを組む必要があるとする。その時の区切り文字は「, 」とする。 上記の配列の場合、次のように出力されるのが期…

リフレクション

Javaではよくリフレクションを使いますが、javascriptでも同様に出来ました。 Java public class User { private String name; private int age; User(String name, int age) { this.name = name; this.age = age; } public int getAge() { return age; } pu…

eclipse

eclipseの機能を分かりやすく説明しているサイトを発見。特にショートカットやリファクタリングの機能はおさえておかないとね。 http://www.confrage.com/eclipse/

枯渇

Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted負荷テスト中にこんなエラーが出て、参った。 アプリサーバーにtomcat5.5.23を利用し、DBはoracle10g。データソース接続っていう環境。 この例外で色々調べ…

javascriptの柔軟さがスキ♪

以下はjavaでよく書くコード。 if (str == null || str == '') ・・・ これを検証するメソッドくらい最初からStringクラスが持っておけーと思うんですけどね。C#なら if (str.IsNullOrEmpty()) ・・・と書けます。最初から組み込まれてるんです。javaの場合…

An AnnotationConfiguration instance is required to use・・・が出た時の解決策

hibernateを利用しているプロジェクトにおいて、hbm.xmlファイルを使っていた従来の方法からアノテーション表記に変えた際によく起こります。 おそらくこんなコードがあるのではないでしょうか。 Configuration cfg = new Configuration(); cfg.configure();…

Ant × Groovy = 最強!

Groovyには最初からAntBuilderなるクラスが組み込まれていて、それを使って、build.xmlでやっていることと同等のことが出来ることはわかった。Groovy!参照。 しかしそれだとGroovyベースになってしまい、既にbuild.xmlが結構な量ある場合はそれを全部置き換…

UTF-8でボタンの表示が若干変わる(IEのみ)

現在開発中のアプリケーションは中国語、日本語、英語を扱わないといけないため、DBもHTMLの出力エンコーディングもUTF-8を利用しています。 jspにこんなのをつける。 <%@ page contentType="text/html; charset=UTF-8" pageEncoding="Windows-31J" %> する…

Groovy!

存在自体は前々から知っていたものの、初めて触りました、Groovy! ただ、思いの他インストールにてこずってしまいました。。結局よく分からなかったんですけどね。。 groovyConsole起動して、実行した時に以下のようなエラーが出たんです。 java.lang.Class…

全角数字

全角数字ってint型に変換できるみたい。別にしてくれなくていいのに。 けど、”100.0”や"100.0"はダメ。不思議だ。 System.out.println(NumberUtils.isDigits("100")); System.out.println(Integer.parseInt("100")); 結果 true 100

ファイルダウンロード

ファイルダウンロードプログラムを組んでいると、ファイル名の文字化けが起こるので、「ファイルダウンロード時に文字化けしないようにする方法は?」ってのはよくある質問。誰もが一度ははまる。で、回答はこんな感じ。 fileName= new String(fileName.getB…

文字符号化方式

encodingの話。@ITの記事はわかりやすくてよかった。 http://www.atmarkit.co.jp/fjava/rensai3/eclipsejava2_06/eclipse2_06_1.html この記事読んでたら他のencodingもちょっと見てみたくなったので簡単なプログラムを作成。 private static NumberFormat n…

正規表現にマッチした部分の表示

正規表現でマッチした部分を置換する、というのはよくあるんですが、マッチした部分を抽出して表示するってのはどうするんだろう、と昔思ってたことがあってその時はよく分かりませんでしたが、ひょんなことから分かったのでメモ。 String targetString = "b…

@override

java5にして、eclipseを使うと、なんやら@overrideってのが出だした。これは名前の通りオーバーライドメソッドに対して自動的にeclipseによってつけられるんだけど、なんじゃこりゃと思って毎回消してた。しかししかし、これ超強力な仕組みだった! プログラ…

正規表現でソースコード中の日本語ベタ打ちを抽出

現在、開発中のシステムで多国語対応(国際化対応?多言語対応?i18n対応?なんていうのが正式?)の必要が出てきたため、その対応に追われております。Javaにはpropertiesファイルによる多国語対応の仕組みがあるので、当然それを採用するんだけど、jspはそ…

hibernateからのマイグレ

IBM developerworksの記事。 http://www-06.ibm.com/jp/developerworks/opensource/techjournal/0708_vines/0708_vines.shtmlいつかやる時が来るかもしれないので。 それにしてもO/Rマッピングはどうも使いづらいなぁ。 そういえば、Seasar2の方でも動きがあ…

Genericsもう少し頑張れよ

Java5.0になってからいくつか新機能が増えていますが、Genericsいいよなーと思っていたらイマイチな点を発見してしまった!例を交えて簡単に。 IUserというインタフェースを実装しているUserクラスがあるとします。以下のようなコードは当然書けます。 publi…

hibernate3にはまった!第五弾

今回は大したことないんですが。。。 Use of @OneToMany or @ManyToMany targeting an unmapped class:... こんな例外メッセージが出てるんですよね。。 hibernate.cfg.xmlにはちゃんと書いているのに。何だろうと思ったら!単にone-to-many先のクラスの頭に…

hibernate3ではまった!第四弾。

いい加減にしてくれぇぇぇえ。 DTYPEっていうカラムが勝手に追加されている スキーマエクスポートすると、いくつかのテーブルにDTYPEっていう長さ31のカラムが勝手に追加されている。何これ?けどきっとhibernateのおせっかいであることに間違いない!hibern…

hibernate3ではまった!第三弾。

はまりますねぇ。。。 schemaexportできない 私のプロジェクトでは、スキーマ作成用のantタスクを定義しているのですが、そいつがちゃんと動きません。こんなエラーメッセージ。 Schema text failed: An AnnotationConfiguration instance is required to us…

hibernate3ではまった!第二弾。

またはまりました。。。やっぱ一気にバージョン上げるのは危険ですね。 今回の問題 ポリモーフィズムをEXPLICIT指定しているものがあったので、hibernateアノテーションで置き換えようとすると、これはhibernateのオリジナル機能なので、javax.persistence.E…

hibernate3ではまった!

3.0.5から現時点の最新の3.2.5.gaへバージョンアップする際に、はまりました。バージョンアップにあわせてxdoclet表記からhibernate annotation表記に書き換えを行っていたのですが、buildSessionFactoryを実行する際に「org.hibernate.MappingException: Co…

StringBuilderって

朝から色々ネットサーフィンしてたら、JavaにStringBuilderなるクラスがあることを知った。C#にはStringBuilderあるの知ってるけど、Javaにもあったんだー。StringBufferと何が違うんだろ。と思ってGoogleで調べたら、見事に説明しているページがありました…

乱数

32桁乱数を生成することってよく(もしくはたまに)あるんだけど、みんなどうやって実装してるんだろう。 私のプロジェクトではhibernateを使っていますが、Entityオブジェクトに32桁乱数を振る時にhibernateの機能にあるUUIDアルゴリズムで振ることにしてい…

Antでjunitテスト実行時にエラーが出る

デフォルトパッケージにUser.javaというクラスを作って、そのテストを行うUserTest.classを同じくデフォルトパッケージに作成。 これをlinuxで動作させようにも動かない。。 build.xmlは以下。 <path id="build.classpath" description="必要なファイルをクラスパスに通します。"> <fileset dir="lib"> <include name="**/*.jar" /> </fileset> </path> <target name="junit" description="JUnit実行"> </target>

DIコンテナってどうよ!?

と、ちょっと前から考えていました。効果ある?みたいな。DIが騒がれて2年くらい経つのかな。自分のプロジェクトでもいち早く導入したものの開発効率が上がったり、コード数が減った、テストしやすくなった、バグが減った、などの劇的な効果が何も出ていない…

GoogleのDIコンテナ(Guice)

GoogleがDIコンテナを公表している。Guiceといい、「ジュース」と発音するそうな。 なんかいまさら、な感じもあるけど。。以下が他とは違う特徴らしい。 custom scopes circular dependencies static member injection Spring integration AOP Alliance meth…