2021-01-01から1年間の記事一覧

フィールドやメソッドに付与されたRetentionPolicy.CLASSのアノテーションをJavassistで実行時に判定する

lombok.NonNull やKotlinの val をコンパイルすると付与される org.jetbrains.annotations.NotNull など、 RetentionPolicy.CLASS のアノテーションを実行時に判定したい場面があった。 RetentionPolicy.CLASS の場合は、 RetentionPolicy.RUNTIME のように…

Android版Google Chromeで、タブがグループ化されてまとめられるのを解除する

Android版Google Chromeのタブが、最近のアップデートで勝手にグループ化されるようになった。 タップ数が増え、タブの切り替えが面倒になったので戻そうと思っても、設定にそれらしい項目がない。 ちょっと調べたところ、標準設定ではないが、戻す方法があ…

JavaのユニットテストでLocalStackを使っているときに「Cannot find docker executable」が出たときの対応方法

JavaのユニットテストでLocalStack Java Utils v0.1.22を使ってAWSサービスのテストをしていたが、Windows + Docker Desktopの環境で Cannot find docker executable. というエラーが発生するようになった。 CLIからの docker コマンドは通るのに、Javaのユ…

GradleでコンパイルするJavaのバージョンを指定するときはJavaVersion列挙型が使える

小ネタ。 GradleでJavaのコンパイルするバージョンなどを指定する際、お決まりで apply plugin: 'java' sourceCompatibility = 1.8 targetCompatibility = '1.8' のように記述するが、ここに列挙型が使える。 ただ、毎回クラス名が何だったか忘れるのでメモ…

Intellij IDEAで生成するテストクラスの接尾語を変更する

Intellij IDEAで、Javaなどのクラスから Alt + Enter でテストクラスを生成できる。 ただ、テストフレームワークにSpockを使用する場合、慣例としてテストクラスの接尾語は Spec だが、デフォルトでは接尾語が Test になってしまう。 接尾語の変更ができない…

Kotlinのchunkedのように、Javaでサイズ/要素数によるList分割をするにはGuavaかCommons Collectionsを使えばいい

Kotlinの Iterable#chunked が便利だな~と思っていた矢先、JavaでListを複数のリストに分割する機会があった。 検索すると独自の実装方法が上位に出てくるが、たぶんCommons CollectionsかGuavaに用意されてるだろうと思ったら、両方にあったのでメモ。 Kot…