ConcurrentModificationException が Java で発生したときの対処方法

はじめに ConcurrentModificationException が Java で発生したときの対処方法. 以下のようなコードを実行すると, 例外発生. import java.util.Set; import java.util.HashSet; public class ConcurrentModification { public static void main (String[] args) { Set<Integer> set = new HashSet<Integer>(); for (int i = 0; i < 5; i++)...

December 12, 2014 · 1 min · tsu-nera

JUnit のテストケースをステートフルで利用する

はじめに JUnit で, 結合テスト (Integration test), シナリオテストを書きたい. トランザクションごとに長いテストを書く必要がある. 複数のトランザクションを順に処理して...

December 11, 2014 · 2 min · tsu-nera

Factory Method と Abstract Factory の違いを順に理解する

はじめに デザインパターンにでてくる Factory Method と Abstract Factory. なんだか, いつになっても違いが分からない… というわけで一旦整理してみることにした....

December 10, 2014 · 5 min · tsu-nera

Java に Pair はないの?

はじめに 2 つの Key をもつ Map を利用したい. たしか, C++ には Pair があった. Java にはないの? 結論 ない. じゃあどうするか? 自分で作成するしかない! class Pair<F, S> { public...

December 9, 2014 · 2 min · tsu-nera

状態ありはプロトタイプパターンで, 状態なしはファクトリメソッドで実装 (Java)

はじめに だんだん, タイトルが毎回同じになってきた. 今回はプロトタイプパターンの実装を Java で実施してみた. Prototype パターン 生成するオブジェクトの原型を...

December 8, 2014 · 3 min · tsu-nera

Java で Iterator Pattern を実装してみた

はじめに 最近, Gof のデザインパターンをすべて記事にしようと考えている. そんなわけで, 今日は Iterator パターン. あまりに基本すぎて, 記事にするほどではな...

December 8, 2014 · 2 min · tsu-nera

Java で Chain of Responsibility Pattern を 末尾再帰で実装した

はじめに Chain of Responsibility Pattern という, マイナーな Gof のパターンがある. 本をよんでみて, これって再帰関数を利用すればもっとシンプルにかけるんじゃないかとおもっ...

December 8, 2014 · 3 min · tsu-nera

Haskell の xUnit ツール HUnit を試す

はじめに Haskell でテストコードを書くツールをしらべてみた. メジャーなものは以下 doctest QuickCheck HSpec HUnit 各ツールの特徴 doctest コメントにテストを書くスタイルのツール. Python の...

December 7, 2014 · 1 min · tsu-nera

Java におけるポリモーフィズムの整理

はじめに Haskell で型クラスというものを勉強した. その延長で, 今までとてもいい加減に理解していた Java のポリモーフィズムについて再度復習した. なんか, 用...

December 7, 2014 · 4 min · tsu-nera

Java で プリミティブ型から byte 型配列へ変換する

はじめに Java で byte 型を扱う方法を調べてみたのでまとめてみる. ByteBuffer クラスをつかう ByteBuffer クラスを利用すると, byte 型に対するいろいろな操作が簡単にできる. ByteBuffer (Java...

December 7, 2014 · 1 min · tsu-nera