Java

Google gson Map null To empty String

Google gson で、toJson をする時、null → "" になるように、 NullStringToEmptyAdapterFactory なるものを書いていた。 もしくは、どこかのライブラリには似たようなものがあってそれを使ったりしていたが、 でもこれでは、Map に対しては効かない、Map にK…

LocalDateTime <--> Epoc mili second

メモ、 long milliseconds = System.currentTimeMillis(); LocalDateTime time = Instant.ofEpochMilli(milliseconds).atZone(ZoneId.systemDefault()).toLocalDateTime();LocalDateTime localdatetime = LocalDateTime.of(2018, 02, 28, 22, 32, 17); long …

Base64 でエンコードされた画像データ文字列から、画像の復元

Qiita で以下、古い記事を見つけました。 Base64形式で受け取った画像データをBufferedImageに変換 - Qiitaとても参考になり良い記事です。特に、1ピクセルずつ画像を生成する処理は Cool ! です。 Java8 になってからは、Apache Commons Codec の Base64 で…

Maven 依存関係深い時の Jigsaw モジュール参照できないエラーを回避するには

Java9 で、module-info を書いて、Maven で解決できない時、 Maven 依存関係が深くなってしまった場合、pom.xml でネストして書いていなかったものを 書けばコンパイルが通る。 実際の現象、、、 最初、pom.xml を以下のように記述していた。。 <properties> <wicket.version>8.0.0-M8</wicket.version> <guice.verison>4.</guice.verison></properties>…

Jasperreports NumberFormat は、cannot be resolved to a type

Jasperreports で、java.text.format.NumberFormat で、金額 format 出力しようと <textFieldExpression> </textFieldExpression> と書いたら、JRException 発生 java.text.format.NumberFormat cannot be resolved to a type になってしまう。DecimalFormatを…

Jasperreports でLocalDate をフォーマット出力

1年近く前、Jasperreports 5.6.0 で、Java8 LocalDate を出力するのに、Eclipseのコンパイラを使う方法を書いたが、 Jasperreports 5.6.0 で Java8 LocalDate を出力するには - Oboe吹きプログラマの黙示録 もう、Jasperreports 6.5.1 では、Jaspersoft Stu…

祝日休日、土曜日曜を除く平日のリストあるいは Stream を求める

自分が開発した Java祝日計算、 Java祝日計算 プロジェクト日本語トップページ - OSDN より、任意の月の祝日休日、土曜日曜を除く平日の Stream を求める。準備として、この Java祝日計算 では、以下のように祝日休日のリストを求めるのには、以下が存在する…

Java AES 256 暗合・複合

過去に何度も書いた Java AES 暗合・複合 秘密鍵、初期ベクトルをどう作成するか、いろんな方法あるが、 改めて、256bit で、SHA-256 ハッシュ値を使う方法。暗合 public static String encrypt(String passwd, String message){ try{ byte[] key = passwd.g…

祝日計算にstatic listHolidayBundle (year, month)メソッドを追加した。

祝日計算、「Java祝日計算」と命名して Java版だけのつもりだったが、途中から JavaScript版も追加 Java祝日計算 プロジェクト日本語トップページ - OSDN このJava版の方に、日付の LocalDate オブジェクトと祝日名 String を束ねた HolidayBundle のリスト…

Java9 Eclipse 必要な .class ファイルから間接的に参照されています のエラー

Java9 、Eclipse Oxygen Maven使用で、Wicket8 を使ったプロジェクトでコンパイルエラー以下が出る。 型 org.slf4j.Logger を解決できません。必要な .class ファイルから間接的に参照されていますwicket-core 8.0.0-M8 は、まだ sl4j-api 1.7.25 という ま…

Java祝日計算、3.1 に更新

2019年だけは天皇誕生日無しにするとして、Java のソースの方は 3.1 にした。 ja.osdn.net

配列の比較が Java9 でメソッド追加

Java8 までは、単純に equal を調べるなら、java.util.Arrays の equals や、deepEquals(Object a1, Object a2) で 事足りた。 Java9 から、Arrays には以下の static メソッドが追加されている。 int Arrays.compare(T a, T b) int Arrays.compare(int a, i…

日付のStream生成 Java9 で追加がある。

Java8 までは、過去書いたように、、、 LocalDate の Stream 生成 - Oboe吹きプログラマの黙示録 Stream で LocalDateリストを生成 - Oboe吹きプログラマの黙示録 Java で横長カレンダーを書くための処理 - Oboe吹きプログラマの黙示録 のように、LocalDate …

java9 で追加された Objects.requireNonNullElse / requireNonNullElseGet

NULL でない時の値の取得などは、Java8 で追加された Optional で充分事足りるのにと思うのだが、 Java9 で java.util.Objects には、requireNonNullElse / requireNonNullElseGet が追加されてる。 public static <T> T requireNonNullElse​(T obj, T default</t>…

Throwable な Function から、Optional<LocalDate>を生成することでコードを短く

先日、Optional の filter を連結して使う - Oboe吹きプログラマの黙示録 で書いた例は、 DateFormat の日付の妥当性チェック setLenient(true=厳しくない)を行い、これが返却値なしの void メソッドであることから どうしてもあのようになってしまってい…

Serializable And Throwable Consumer

Wicket フォームイベント捕捉した時の処理は、シリアライズ化した関数型インターフェース github.com これのおかげで、Wicket 8から、AjaxFormSubmitBehavior の onSubmit でラムダ式を書けるようになった。 しかし、ラムダ式の中で例外捕捉の try~catchブ…

ZIP 圧縮と展開

先日、tar and gzip 圧縮・展開を書いたので、ZIP圧縮・展開です。これは Apache commons-compress を必要とすることなく 標準ライブラリと、Throwable な Consumerがあれば綺麗に書けます。→ ラムダ式の例外処理を綺麗にする - Oboe吹きプログラマの黙示録…

Java9 module-info 未対応 JAR の Maven 解決方法

先日、初めてJava9 Jigsaw に触れて四苦八苦したが、、、 Java9 Jigsaw モジュール参照側は結局すべてモジュールを引っ張れないとならない?! - Oboe吹きプログラマの黙示録 Java9 Jigsaw モジュール使用プログラムの実行 - Oboe吹きプログラマの黙示録 Jav…

tar and gzip 圧縮・展開を補強

Tar GZIP 圧縮を先日書いた oboe2uran.hatenablog.comこれに、圧縮する時に対象を制限したり展開せずにエントリを抽出するものを追加した。 長いけど以下のとおり。ただし、→ FileCollection - Oboe吹きプログラマの黙示録 が必要 import java.io.BufferedIn…

Java9 の HttpClient を試す

Java9 HttpClient インキュベーターなので、この先どうなるか判らないが、 Apatch HTTPClient を使わなくて済むようになるのか? とりあえず試してみる。 モジュール使用宣言を用意する必要があり、module-info..java を次のように用意する。 module sample{…

Java9 でまとめる方向が見えてきた非同期ストリーム

community.oracle.com 有志が日本語に訳してくれて助かります。 https://orablogs-jp.blogspot.jp/2016/10/reactive-programming-with-jdk-9-flow-api.html

Java9 Jigsaw モジュール参照側は結局すべてモジュールを引っ張れないとならない?!

Java9 Jigsaw モジュール使用プログラムの実行 - Oboe吹きプログラマの黙示録 に書いたが、Elipse Maven で、WTP 書いてコンパイルができないのは、 依存する JAR が export を宣言した module-info を用意したJAR を使ってないからだ。 でも、開発するWebア…

マップの比較、MapDiff

1年近く前に、リストの比較を書いた。 リストの比較、ListDiff - Oboe吹きプログラマの黙示録それなら2つのマップの比較も普遍的なものが書けるであろう。 import java.util.Map; import java.util.function.BiFunction; import java.util.function.Consum…

Java9 Jigsaw モジュール使用プログラムの実行

モジュール参照のJavaプログラムを実行するにはモジュール exportしている JARの置かれたパスを指定して 読み込めるように指定オプションと参照側のクラスを指定しないとならない。 java -m {モジュール検索先PATH} -p {実行するモジュール名}/クラス名{モジ…

Java9 待望の Optionalのメソッド

(1)Java8 まで、Optional の、肯定と否定を、以前書いたように実行していたが、 Optional のifPresent の否定形 - Oboe吹きプログラマの黙示録ifPresentOrElse で書けるようになった。さほど文が短くなるわけではないけど、型を書かなくてもいい。 Option…

Java9 Jigsaw と Maven

Java9 も一般公開リリースされて日数も経ったが、まだ仕事の現場で使用されたというのは聞こえてこない。 Jigsaw モジュール定義で公開したいものだけを module-info.java に書いて、参照側でモジュール定義名を参照限定する機能、 ソース管理と伴に隠蔽化し…

ByteArrayInputStream を使って文字列 String を作る

未知の byte配列のデータ、制御文字が入っているかもしれない byte配列のデータ、 ただし制御文字以外は ASCIIコードだけであるとします。これをそのまま文字列として print してしまうと制御文字が含まれてしまうので制御文字を取り除いた String を求めた…

mybatis logbackが出なくなった場合の対処

mybatis 、logback を使っていて、logback のバージョン上げたのか何かのきっかけ、 依存関係かなにか?指定しているアペンダ悪い?で mybatis のデバッグレベルのログが出なくなってしまった。 実行するSQL文が見れてデバッグに便利だったlogaback.xml …

Optional の filter を連結して使う

Webアプリでのフォーム入力に限らす、Javaでは変数への入力実行の後の妥当性チェックを記述していると どうしてもコードが長くなる。 コードが長いと、タイプミスの確率も上がるし、なにしろ読むのが辛い。長くても何回も if文を書きたくない。java.util.Opt…

グルーピング&ソートの続き

先日のグルーピング&ソートに続いて、、、 グルーピングした時にソートもする。 - Oboe吹きプログラマの黙示録同じく Foo なるクラスオブジェクトのリストで、グルーピングして並べた時に、先頭だけキーをそのままで 他をキーが表示されないように置き換え…