Java

morpheus ?

ちょっと気になった。。 GitHub - zavtech/morpheus-core: The foundational library of the Morpheus data science framework

Field の getType は、Class

よく落ち着いてみれば、Java リフレクションの Field の getType の返却は、Class だから、以前書いた 入れ子構造のBean の中の Obejct を取得する(2) - Oboe吹きプログラマの黙示録 も、以下のとおり書き直せる。 import java.lang.reflect.Field; impor…

依存関係のライブラリ(JAR)を含めた実行可能JAR を Gradle で作成する

Gradle の jar タスクは以下のようにする。 jar { excluse 'MET-INF/*.SF', 'MET-INF/*.DSA', 'MET-INF/*.RSA', 'MET-INF/*.MF', manifest { attributes 'Main-Class': 'org.yips.HellowMain' 'Class-Path': configurations.runtime.files.collect { "lib/%i…

JSONの整形

JavaScript , Python, Java(gson) それぞれのJSON整形JSON 素材 {"a":1,"b":"ABC","c":[1,2,3],"d":{"A":"x", "e":{ "B":23, "C":45},"f":null}} JavaScript JSON.stringify で充分、詳細は、JSON.stringify() - JavaScript | MDN をよく読むこと。 const da…

入れ子構造のBean の中の Obejct を取得する(2)

入れ子構造のBean の中の Obejct を取得する(1) - Oboe吹きプログラマの黙示録 の続き。。。変数の宣言名でなく型を指定して、Bean の中を探索→入れ子構造も探索で指定型のインスタンスを求める。 ただし、探索に指定する型が重複して持っている場合はう…

入れ子構造のBean の中の Obejct を取得する(1)

入れ子構造のクラス、例えば以下のようなクラス、 (setterやgetterなどはここでは省略) public class Aunit{ private int id; private String name; private Bunit bunit; } public class Bunit{ private String name; private Cunit cunit; } public clas…

右端に結果を書いた表のCSVから結果を求める

昨日は、表の最終行に結果を書いた表CSVだったが、右端に置いた表の場合での プログラムはどうなるか、 とても簡単になる。 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java…

問い合わせマトリクスの実装

複数の条件、条件の数にもよるが表にまとめないと管理が辛いことは、よくあるケースです。 条件数も少なめで、求めた結果も偏りがあるなら、if 文のネストを書いてもなんとか人の思考も 時間的に追いつくでしょう。 案外、条件1つ増えただけでも、数学的に…

daria公開

遂に公開、Excel → Database のツールhttps://github.com/yipuran/daria

main/resources に配置するテキストファイルの扱い

開発 project の main/resources に、UTF-8 で書いたテキストファイルを用意して ビルドのクラスPATH target/classes などに配置されて 読込み実行して、 それを Windows でコマンドプロンプトで実行して、文字化けしないように標準出力する。 変な要件かも…

Class の getPackageName() は、Java9 からであることに注意

ある程度の規模のプロジェクトまたは会社では、Java で開発といっても 未だに、Java 8 のままである。だから以下のようなコードを書いても使うことができない。自クラスと同じ場所(クラスパッケージ階層)に読込みたいリソースファイルを配置する設計の時、…

月末日までの日付ストリーム

任意の日付に対する月末日までの日付ストリームの生成は、 以下、2通り考えられる。Stream.iterate で、+1 days する方法 LocalDate d = LocalDate.now(); Stream<LocalDate> s = Stream.iterate(d, e->e.plusDays(1)) .limit(d.lengthOfMonth() - d.getDayOfMonth() +</localdate>…

BeanUtils の copyProperties に喧嘩を売るつもりはないけど。。。

Apache の commons-beanutils 今更、BeanUtils の copyProperties と張りあうつもりもないし、Entity DTO Form などで属性値渡すような アーキテクチャ(アプリ構成)には、とっくに興味がないのだが、、、 原始的には、面白いところなので、書いてみた。公…

Apache POI でExcel 日付読込み(2)

先日書いた oboe2uran.hatenablog.com よりも、 やはり、org.apache.poi.ss.usermodel.DateUtil#isCellDateFormatted(Cell cell) を使うべきで、 セルの日付の値取得はこうすべきだ。(例) XSSFWorkbook book = new XSSFWorkbook(inputstream); XSSFSheet s…

Java 動的に複数ソートを書くためのクラス

結局、、 複数要素ソートを動的(ダイナミック)にする。 - Oboe吹きプログラマの黙示録これは、git-hub の方に入れました。。 yipuran-core/DyComparator.java at master · yipuran/yipuran-core · GitHubsorting · yipuran/yipuran-core Wiki · GitHub

複数要素ソートを動的(ダイナミック)にする。

前回投稿の Java 複数要素ソートのおさらい - Oboe吹きプログラマの黙示録 は、どうしてもソート対象の要素が、、、 ・要素の数、優先順位 の指定はコーディングに依存が強い、、 ・昇順のみ でした。 list.stream().sorted( Comparator.comparing(Fieldgett…

Java 複数要素ソートのおさらい

1つの要素ソートであれば、単純な例 public class Foo{ public Integer width; public Integer height; public Integer depth; } List<Foo> list; // list 生成後、、 list.stream().sorted((a, b)->a.width.compareTo(b.width)) width -> height -> depth の順</foo>…

mybatis xml設定ファイル使わない場合の補足

mybatis xml設定ファイル使わない場合の方法として まとめたが、、 mybatis XML設定を使わない場合 - Oboe吹きプログラマの黙示録接続設定をXMLに記述しないとしても、 やはり複雑なSQLをアノテーションに記述しては読みにくいので、 SQL文は、SQL Map…

Java Bean のコピー(2)、 Snake case ⇔ Camel case

昨日投稿の、Java Bean のコピー(1)、 Snake case ⇔ Camel case - Oboe吹きプログラマの黙示録 は、コピー先に Camele ⇔ Snale 対応の同じ型フィールドが存在しなくても属性値コピー生成する方法だ。 でも、厳しく、機能上より優れてる以下の属性値コピー…

Java Bean のコピー(1)、 Snake case ⇔ Camel case

Field 属性が、Snake case で記述された Java のオブジェクト(Bean)と Camel case で記述された Java のオブジェクト(Bean) 相互に値をコピー生成する方法、 つまり、Snake case で記述されたフィールド属性値を対応する Camel case で記述されたフィー…

Java で、Snake case ⇔ Camel case

先日、Python で処理する Snake case ⇔ Camel case を書いた。 Python で snake case → camel case - Oboe吹きプログラマの黙示録Python で camel case → snake case - Oboe吹きプログラマの黙示録では、Java の場合、これもネット検索すると沢山いろんな方…

Java13 新機能の Text Blocks

これで、mybatis のアノテーションで書くSQLステートメントも書き易く、見やすくなるかも。。。 まだ試してないけど。。。 openjdk.java.net

mybatis XML設定を使わない場合

mybatis のスタートガイド https://mybatis.org/mybatis-3/ja/getting-started.html に書いてあるのは、どういうDatasource を用意すれば良いのか明記されてなくて ちょっと不親切と思っていた。 org.apache.ibatis.datasource.unpooled.UnpooledDataSource …

Map entrySet() から、GenericBuilder → Fieldsetter Streamで集約してインスタンス

Map<String, Object> に、クラスの属性名と値が格納されているとして、 Map entrySet() → Stream の collect で、Fieldsetter 実行してインスタンスを生成ここで使用するものは、 https://github.com/yipuran/yipuran-core/wiki#genericbuildert と、 https://github.com/yip</string,>…

関数型インターフェースで実行する Fieldgetter

昨日、Fieldsettter のことを書いたので、 Fieldsetter は、public でも private でも使用できる - Oboe吹きプログラマの黙示録それならば、getter も同様に書いてみた。 import java.io.Serializable; import java.lang.reflect.Field; import java.util.fu…

Fieldsetter は、public でも private でも使用できる

yipran-core として作成した GenericBuilder Wiki に、 setter が存在しない public フィールドの時、 と setter が存在しない private フィールドの時、 GenericBuilder#with メソッドの書き方の差を書いてしまったが、 実は、org.yipuran.util.Fieldsette…

キー入力の連続

1年前に、標準キー入力させるのに、java.util.Scanner を使用した例を書いた。。。 oboe2uran.hatenablog.comこんなメソッドを用意して使うのもいいが、 public static String keyIn(String guide){ System.out.print(guide); try(Scanner scan = new Scann…

Apache POI でExcel 日付読込み

久々に JavaでExcel を読込む apache POI を使う。 try(InputStream is = new FileInputStream("sample.xlsx"); XSSFWorkbook book = new XSSFWorkbook(is)){ XSSFSheet sheet = book.getSheetAt(0); XSSFRow row = sheet.getRow(2); XSSFCell cell = row.ge…

Stream で処理する正規表現

Java8 でも使えるように書いてみた。。昨日の、 正規表現マッチのストリーム処理を考察 - Oboe吹きプログラマの黙示録 に続いて、思いついたので、まとめてみた。 import java.util.Iterator; import java.util.Spliterator; import java.util.Spliterators;…

正規表現マッチのストリーム処理を考察

Java8 では、正規表現で分割 split したストリームは取得できるけど、 java.util.regex.Pattern の splitAsStream(CharSequence input) ⇒ Stream<String> マッチした文字列のストリームは標準では提供されていない。自然に Matcher の find() 実行ループをメソッドに</string>…