最近よくVisitorを使うので、もうちょっと使いやすいスタイルにならないかなーと思って作ったのがこれ。 まず、acceptメソッド。こいつはVisitorの対象とするノードとかに書く。 /** * 指定のビジタを受け入れる。 * @param <R> 戻り値の型 * @param <C> コンテキストオブジェクトの型 * @param <E> ビジタで発生する例外の型 * @param visitor 受け入れるビジタ * @param context コンテキストオブジェクト(省略可) * @return ビジタの実行結果 * @throws E ビジタでの処理中に例外が発生した場合 */ <R, C, E extends Throwable> R accept( HogeVisitor<R, C, E> visitor, C context) throws E; で、visitメソッ