Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

2008-08-01から1ヶ月間の記事一覧

リフレクションで配列の要素の型を取得する

Class#getComponentType() 配列のコンポーネント型を表す Class を返します。このクラスが配列クラスを表さない場合、このメソッドは null を返します。

君は合成メソッドを知っているか!(Java)

僕は知らなかった。。。まだまだJava初心者だな。 出会い S2のBeanDescImpl*1クラスを読んでいたらこういうソースがあった。 private void setupPropertyDescs() { ... if (MethodUtil.isBridgeMethod(m) || MethodUtil.isSyntheticMethod(m)) { continue; }…

JavassistのCtClass#getMethod()の第2引数

CtClass#getMethod()JavassistでgetMethod()の引数に何を渡したらいいか理解していなかった。 public CtMethod getMethod(java.lang.String name, java.lang.String desc) で、「desc - method descriptor」なんだけど、 これはJVMの記法?みたいなのを書け…

J2SE5.0から導入されたConcurrentHashMapクラス

複数のスレッドからアクセスされるMapコレクションには、同期HashMapオブジェクトではなく、ConcurrentHashMapオブジェクトを使うべきだと言える。 [http://www.itarchitect.jp/technology_and_programming/-/24161-1.html:title=J2SE 5.0の新機能──第8回 並…

BeanのListとDbUnitのDataSetを比較する方法を考える

DbUnitの弱点はBeanのListとDataSetを比較できないことから考えて、実際に比較する方法を考えようと思う。 方法は2つある。 BeanのListをIDataSet実装オブジェクトに変換する DataSetから比較するBeanのListに変換する 2の方法だと、プリミティブなプロパテ…

DbUnitの弱点はBeanのListとDataSetを比較できないこと

DbUnitを使うにあたって一番問題になることは、Daoから取得したJava BeansのListとExcelの期待値を比較できないことだ。 Excel(XML)の期待値はDbUnitではDataSetとして表す。 だけど、DbUnitのAssertクラスであるorg.dbunit.AssertionクラスではDataSet同士…

eclipseでのJavadoc生成

Project -> Generate Javadoc. アノテーションがある場合はいきなりfinishしても生成できない。ウィザードの最後でJREのバージョンを変える必要がある。

TestNGとJUnit4のもっとも大きな違い

TestNGとJUnit4のもっとも大きな違いはテストクラスのインスタンス生成だ。 あるテストクラスに複数のテストメソッドがあるとき、2つのフレームワークはこう振る舞う。 TestNGは(基本的に)テストクラスのインスタンスは1つしか作らない JUnit4はテストメソッ…

DbUnitでDatabaseOperation.DELETEするときのXML

<dataset> <DEPT /> <EMP /> </dataset> のようにテーブルを要素名にしてを列挙するだけでよい。 逆にデータを登録するときにはカラムの値を属性にする必要がある。 <dataset> <DEPT DEPTNO="10" DNAME="ACCOUNTING" LOC="NEW YORK"/> </dept></dataset>

テストをSkipするときはITestListener#onTestStart()は呼び出されない

ITestListenerインタフェースのonTestStartメソッドは、 「Invoked each time before a test will be invoked.」なので(特にwill be invokedに注目)、 dependsOnXXX属性を使っていてテストがSkipされるときはonTestStart()メソッドは呼び出されない。

Macで日本語入力時にスペースを半角にする

mac

http://pc11.2ch.net/test/read.cgi/mac/1204069594/57 より: 57 :名称未設定:2008/03/01(土) 01:40:03 id:aUw0i6ps0 Leopard限定。 ことえりでスペースを半角に。 $ defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add " " -bool false 再ログ…

testng.xmlの<suite-files>

バージョン5.3から追加された要素。 要は他のテストスイートファイルを取り込める。 <suite-files> <suite-file path="ファイルのパス"> </suite-files> </suite-files> ちなみにファイル間のパラメータの継承とかはないそうです。 Indeed, inheritance of parameters in testng.xml files is not supported, for a couple of reasons: I …

DbUnitアノテーション対応の使い方

ソースはhttp://sourceforge.jp/projects/dbunitng/からダウンロードしてもらうとして。 TestNGのテストスイートファイルであるtestng.xmlにデータベース接続情報を記述します。 <parameter name="driver" value="com.mysql.jdbc.Driver"></parameter> <parameter name="url" value="jdbc:mysql://127.0.0.1/データベース名"></parameter> <parameter name="username" value="ユーザー名"></parameter>

TestNGでDbUnitをアノテーション対応するコードをSourceForgeにコミットした

TestNGとDbUnitを連携させ、より簡単にデータベース接続テストを作成できるようにします。たとえば、アノテーションを用いて初期データを投入できます。 SourceForge.JP: Project Info - DbUnitNG

Finderでディレクトリごと上書きすると、ファイルは上書きしたディレクトリのものしか残らない

mac

Windowsと異なるので注意。 eclipseのpluginsをFinderで上書きしたら、元のプラグインなくなっちゃいました。。。

DbUnitのアノテーション対応 ( with TestNG )

こんなのしたくない?? @SetUpOperation(value = DatabaseOperationType.CLEAN_INSERT, pathname = "org/dbunitng/dept-emp.xml") @Test public void verifySelectAllFromDept() { // call target method and assert... } 要はDbUnitのアノテーション対応。…

祝☆100,000ページビュー!

日記をつけた日数293日でついに100,000ページビューに到達しました!

Macでバックスラッシュを入力する

mac

option + 円マークキー. ことえりの環境設定で円マークからバックスラッシュに変更もできる。

Enumとアノテーションはやっぱり考えて同時に導入したのかな

Javaの話。 アノテーションを自分で定義してるんだけど、 このアノテーションには値としてこれか、あれかだけ、って考えることが多い。 そうすると自然とEnumが選択肢になる。 そもそもアノテーションには値として(ほぼ)プリミティブしか記述できない。 プリ…

TestNGとDbUnitを連携したサンプル

TestNGとDbUnitを連携させることで、テストクラスはTestCaseを継承する必要がなくなる。 TestCaseを継承する代わりに、XXDatabaseTesterというDbUnitにあるクラスを使う。 JdbcDatabaseTester DataSourceDatabaseTester DriverManagerからConnectionを作るか…