@kis さんのエントリ「Javaでのパターンマッチを考える」がとても興味深かったので、私も書いてみました。 ユーティリティクラスを使って解決することにしたらどうでしょう? Scalaの記法をよく見て、なるべく似たような形になるようにクラス構造を考えました。 caseなどのキーワードに当たる部分はstaticメソッドで乗り切り、マッチした際に実行されるコードブロックはインナークラスを使って表現します。 package patternmatch; import java.util.Arrays; public class PatternMatcher { public static PatternMatcher subject(Object... objects) { return new PatternMatcher(objects); } public static Case case_