2023-03-01から1ヶ月間の記事一覧

logback のログ開始を抑制

logback のログ出力で最初に以下の余計なログが出力される場合の抑制 13:29:48,061 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.4.6 13:29:48,088 |-INFO in ch.qos.logback.classic.LoggerContext[defau…

Java Socket通信の簡単なサンプル

標準キー入力による簡単なサンプル受信サーバーソケットプログラム 同時複数接続を可能とするために、accept() で接続した Socket は、子スレッドで close する。 import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket…

mybatis の if 文

良く記述するパターン、 パラメータ変数 String type; に対して、、 WHERE 1=1 <if test="type == null"> AND id = #{id} </if> <if test="type != null"> 文字列比較:空文字 <if test="type == ''"> 文字列比較:任意 <if test="type == 'A012'"> 以外にもあまり書かないパターンで、 パラメータ変数の型が boolean なら、 boolean flg であれば、 <if test="flg"> で、flg = true</if></if></if></if>…

固定長文字列フォーマットからクラスオブジェクトを求める

Stream の reduceで文字列を長さで分割 - Oboe吹きプログラマの黙示録 を書いた時、応用すれば長いコードを書かなくても済むのでは?と思いました。 解析対象の固定長フォーマットの文字列、長さ 4,2,6,14 の文字列長の連結 String str = "uranA1 9812023031…

Stream の reduceで文字列を長さで分割

今時、電文など固定長文字列でデータ設計するところは少ないであろう。 文字列の長さ、(4, 2, 6, 6) と4個の並びであるとして、18の長さの文字列を分割するのに、 Stream の reduce を使うと、わりとスマートに書ける。 List<String> list = new ArrayList<>(); L</string>…

mapMulti

Java16 から使える Stream の mapMulti mapMulti(BiConsumer> mapper) flatMap と何が違う、使いどころがすぐに思いつかなかったが、メソッドの説明のサンプルで、 なるほど便利と思うのが書いてある。 ネストされているリストを、1つのStream にする。 cla…

Java16 からの JEP394 Pattern Matching for instanceof

instanceof 後のcast する鬱陶しいのを回避で、よく紹介されますが、 if (obj instanceof String) { String s = (String)obj; // String s の処理 } if (obj instanceof String s) { // String s の処理 } 次のように、総称型の配列を List に変換するのに使…