2022-01-01から1年間の記事一覧
以前、Excel 拡張子 (xls) (xlsx) 両方に対応した操作 Apache POI として、 oboe2uran.hatenablog.com を書いた。しかし、ファイルシステムによっては、Excel WorkBook の認識に、 Your InputStream was neither an OLE2 stream, nor an OOXML stream or you…
public static <T, R> R relayFunction(List<T> list, Function<T, R> first, BiFunction<T, R, R> func){ Iterator<T> it = list.iterator(); R r = it.hasNext() ? first.apply(it.next()) : null; while(it.hasNext()) { r = func.apply(it.next(), r); } return r; }</t></t,></t,></t></t,>
JSONの仕様は、フィールド名:キー は、(") ダブルクォーテーションで囲むと されているが、RFC8259 にそんなこと書いてあるか? JavaScript 表記のことを考えると、キーをダブルクォーテーションで囲まないケースで 読込みエラーになるのは、不都合なのでは…
稀に書くことがある Iterator から Stream への変換メモSpliterators.spliteratorUnknownSize で、イテレータを Spliterator を作って、 StreamSupport で Stream生成 Iterator<T> iterator =list.iterator(); サイズが解らない場合ケースが多いので、 Stream<T> s</t></t>…
oboe2uran.hatenablog.comこれを、先頭だけ Consumer にして、BiConsumer で if 文を書く必要をなくす。 public static <T> void eachPrevious(List<T> list, Consumer<T> first, BiConsumer<T, T> consumer){ ListIterator<T> it = list.listIterator(); first.accept(it.next</t></t,></t></t></t>…
前回の投稿、 oboe2uran.hatenablog.comさらに、BiConsumer の処理にしてみます。 public static <T> void eachPrevious(List<T> list, BiConsumer<T, T> consumer){ for(ListIterator<T> it = list.listIterator(); it.hasNext();) { T pre = null; if (it.hasPrevious()) </t></t,></t></t>…
特別に新しいことではない、Java標準で 1.6の時代からあることではあるが、 意外と正確に迅速に書けないロジック (課題)A, B. C,.... と文字列のリストが存在する。 これを、前の要素を参照しながら抽出処理する。ListIterator の hasPrevious() と previo…
JSON → Map import com.fasterxml.jackson.core.type.TypeReference; TypeReference を使って Map<String, Object> map = new ObjectMapper() .readValue(jsontxt, new TypeReference<LinkedHashMap<String, Object>>(){}); try(InputStream inst = new FileInputStream(Thread.currentThread().getContextC</linkedhashmap<string,></string,>…
AWS Lambda関数 をJavaで構築する場合、イベントの認識はハンドラメソッドのガイドとして 次がある。 docs.aws.amazon.comいきなり Map<String, String> で受け取るハンドラメソッドの方法が書いてあります。 JSONなら、JSONとして受け取ったら直ぐに parse して処理したいも</string,>…
AWS のナレッジを参考にするしかない。 https://aws.amazon.com/jp/premiumsupport/knowledge-center/batch-parameters-trigger-eventbridge/「準備:Job定義」 Javaで書いた Batch のイメージ作成済でAWS Job定義のジョブ設定を行う。 ”Ref”+”::"+{パラメ…
Maven セントラルリポジトリにない JAR 、あるいは外部サーバーのMavenリポジトリから取得できない JARをローカルPCに置いて、Maven でビルドの依存関係に追加する方法Maven の <build> <plugins> に、以下のように<plugin> を挿入すれば可能になる。例)poisample-0.0.1-SNAPSHOT.ja</plugin></plugins></build>…
AWS boto3 に触れたので、これと同じことをJava でやるには、、、 oboe2uran.hatenablog.comaws-java-sdk-batch aws.amazon.comよりも、、software.amazon.awssdk AWS SDK for Java 2.x の方が、インターフェースもそっくり。sdk.amazonaws.comDescribeJobsR…
Batch — Boto3 Docs 1.21.3 documentation のドキュメントを頼りに、以下のような 1つの Job が動いて成功したら次の Job を実行する Lambdaを Pythonで書く。lambda_function.py のソースコード import logging import boto3 logger = logging.getLogger()…
@PostConstruct , @PreDestroy などの JSR-250 Lifecycle annotation は、 これらを使ってちゃんと実装すべきなのだろうけど、 guice/extensions/jsr250 at master · mathieucarbou/guice · GitHub @PostConstruct だけ、簡単につかいたい。結構、古い断片の…
Google guice での static へのインジェクションは、割と簡単な方法であるのに対し、、、 static injection - Oboe吹きプログラマの黙示録 では、Springの場合は、、、 と調べると。。 www.baeldung.comcode injection - Spring: How to inject a value to s…
Google guice に static 宣言の Object にインジェクションする方法はあるのか? ⇒ ある。 Module の configure() メソッド実行の中で、requestStaticInjection(Class ) で対象クラスを指定すればよい。 @Override public void configure() { requestStaticI…
JUnit 実行順序を指定するだけだと、 JUnit テストケースの実行順序 - Oboe吹きプログラマの黙示録 この通りだが、さらにその実行順序を振った前提で順番の番号の範囲を指定して 実行するにはこれに、少し改良すれば良い@Order アノテーションは前回と同じ i…
JUnit4 を使っていて、テストケースの実行順序をメソッド名によるソート@FixMethodOrderも悪くはないのですが 任意に順番を指定する良い方法はないかと探していたら、やはり自作するしかないようで 自作でも良いから簡単な方法は?と探してたらありました。…
去年、以下を書いたけれど、、 XMLMapperBuilder を使ってみる。 - Oboe吹きプログラマの黙示録 Java インターフェースクラスで書く Mapper の指定になってしまっている。 クラスローダーが読み込める全ての classpath から、XMLを見つけて parse する方法と…
@Resource を使用したコードを OpenJDK 11 でビルドしようとしたら、 見つからないとコンパイルエラーになった。 Java 8 Oracle SDK の時は標準SDKにあったけどどうやら、一旦、外されたらしい。 Java 11: cannot find symbol javax.annotation.Generated ·…
可変長引数のコンストラクタを持つクラスをコンストラクタのリフレクションで生成する 以下のようなコンストラクタの時、 public Sample(String...args) { Constructor の newInstance メソッドは、newInstance(Object...) であるので、 以下のように、new O…
Java 標準SDK で、ちょっと簡単に書いてみる。 import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Arrays; import java.util.zip.Zip…
過去に書いていそうで、今まで書いてなかった 中括弧 "{ } " これは curly bracketsと呼ぶのかな? で囲んだ数値の文字列変換、 java.text.MessageFormat の format メソッドを使えば済むことではあるが、 簡単なことなので書いておく。テンプレート abc {0}…
よくよく考えたら、 Excel 拡張子 (xls) (xlsx) 両方に対応した操作 Apache POI(1) - Oboe吹きプログラマの黙示録 は、あまり賢くない!Closeableを実装して、Workbook のインスタンスとすべきだ。 import java.io.Closeable; import java.io.IOException…
org.apache.poi.ss.usermodel.Workbook から、 Excelバージョンを調べる方法org.apache.poi.ss.SpreadsheetVersion という enum を 調べればよい。 public static SpreadsheetVersion getSpreadsheetVersion(InputStream inst) { try(Workbook book = Workbo…
org.apache.poi.ss.usermodel.Workbook を、引数なしコンストラクタで Excel 2003 の形式なら、new HSSFWorkbook() Excel 2007 から、new XSSFWorkbook() で作成すれば良い。シート名が曲者で、 Workbook book = new XSSFWorkbook(); book.createSheet(); bo…
久々に、Apache POI に触れます。 Excel 2003 の形式、拡張子 .xls Excel 2007 からの形式、拡張子 .xlsx 両方に対応するには、 org.apache.poi.ss.usermodel.* にある WorkbookFactory で、Workbook を取得して Workbook book = WorkbookFactory.create(inp…
PostgreSQL の VACUUM は、いつやるべきか?不要になったタプルが増えた時に行うべき。 SELECT relname, n_live_tup, n_dead_tup, CASE n_dead_tup WHEN 0 THEN 0 ELSE round(n_dead_tup*100/(n_live_tup+n_dead_tup) ,2) END AS ratio FROM pg_stat_user_ta…
Java で、Excel ファイルを操作といったら、Apache POI 一択だろうと思っていたので 今まで躍起に探したことがなかった。Jxls ・・・テンプレートによる転送、、そんなことをしたいのではない。Apache-poi を内包するんだったら意味ない。 ExCella Reports・…
過去、、いろいろ試行錯誤を書いていた。。 mybatis XML設定を使わない場合 - Oboe吹きプログラマの黙示録mybatis xml設定ファイル使わない場合の補足 - Oboe吹きプログラマの黙示録【再興】mybatis XML設定を使わない場合 - Oboe吹きプログラマの黙示録myba…