読者です 読者をやめる 読者になる 読者になる

csv4j をラムダ式で。。。

CSVを読み込んで処理する csv4j の利用をラムダ式で書きたくなってきた。 ラムダ式の対象にしたいのは、CSVLineProcessor を使う CSVStreamProcessor である。 ラムダ式にしないこれまでの使用サンプル try{ CSVStreamProcessor csvStreamProcessor = new…

Optional の orElseThrow を使う

Wicket を Java8 で書くようになったせいなのか、Wicket のバリデータを書くのが嫌にになってきた。 たしかにバリデータを書いてセットして、Form の onError が call される方式は、 入力項目が少ない場合に手軽で良いと思う。でも項目が多くて Form のonSu…

Wicket の IRequestParameters と Java8

Wicket でプログラムを書いていて、form送信結果を取得するのに、 getRequestCycle から、org.apache.wicket.request.IRequestParameters を取得して 抽出することはあまりやらないのだけど、 IRequestParameters#getParameterNames() で、受け取るパラメー…

Stream API で List→Map

Java8 Stream API で List→Map 生成に考えられる2通りのうち、どちらが良いのだろうか?例) Item クラス、キーになる int 型の code と String の name を持つ。List<Item> list = createList(); // 生成される。。。/* <R> R collect(Supplier<R> supplier, BiConsumer<R,? super T></r,?></r></r></item>…

Java8 StreamでWicket ListViewセル結合

昨日書いた groupingBy の利用として、HTML-tableタグ rowspan結合をサンプルとして作ってみました。 keyでグルーピング可能な任意オブジェクトリストを受け取って最終目的は以下のような表を作ることです。 Wicket の ListView でこの表を作ります。 対象の…

groupingBy

toMap でオブジェクトをグループ分けするか、groupingBy を使うか? サンプルとして、以下のようなオブジェクトと、リストを作るメソッド public class Author{ public String level; public String name; public Author(String level, String name){ this.l…

IntSream → List<Integer>

Memo List<Integer> list = IntStream.range(1, 13).boxed().collect(Collectors.toList()); list.stream().forEach(System.out::println); results 1 2 3 4 5 6 7 8 9 10 11 12 ================ UnaryOperator<String> stringUpperCase = (s)->s.toUpperCase(); System.out.</string></integer>…

任意の日付→月末日

任意の日付から、月末日を求めるのに、Java7では、わざわざ Calendar を介してしていたので、 コードを綺麗にする為にメソッドにしていた。。 public static Date getEndDate(Date date){ final Calendar cal = Calendar.getInstance(); cal.setTime(date);…

mybatis JSR310 の LocalDate など

Java7→Java8 移行で、mybatis を使うプロジェクトで注意しなければならないのは、 java.util.Date の代わりに java.time.LocalDate / LocalDateTime に置き換わった時です。 mybatis でタイプハンドラを指定やらないとなりません。MITライセンスで、このハ…

removeIf

そろそろ、Java 8 を使い始めるとしよう。 今までアホなコーディングとして、List の展開、 for(E e:list) の中で、list.remove(e); を書いてしまうと、 当然、 Exception in thread "main" java.util.ConcurrentModificationException at java.util.ArrayLi…

正規表現プロセッサ

csv4j を久しぶりに使って思った。なぜ今まで正規表現プロセッサを 書かなかったのだろうか?ごちゃごちゃと力づくのコーディングをして放置して しまったのであろう。 反省すべきであった。 パターンマッチで一致するごとに実行するメソッドをインターフェ…

Windows7 で、JavaService.exe

Windows7 で、JavaService.exe は動くか? 答は、Yes である。ただし普通に実行しては次のようにエラーになる。 UranService という名前でサービス登録しようとすると、 Error attempting to install UranService service アクセスが拒否されました。 Window…