java

javaのStream#map()とjsのArray#map()は実行順が違う

java8から追加されたmap 他の言語にも似た機能はありますが実行順が違うので備忘録的なメモ javaのmap Stream.of(1, 2, 3, 4, 5) .map(v -> { System.out.printf("%dに1を加える\n", v); return v + 1; }) .map(v -> { System.out.printf("%dを2倍する\n", v…

先輩に「メソッドを実行して結果を変数に突っ込め」と言われたら

javaのコーディング中にこんな風に言われた時に、どんなことを考えているのかを整理しておきます

spock + mockitoでverifyするときの注意点

mockitoでverifyするときにテストが通らなくてハマったのでメモ

Springのcomponentをライブラリとして公開する方法

最近ライブラリ作りをたくさんやってます そこで作りたくなるのがcomponentのライブラリ 今日はその作り方を紹介します 以下、gradleで作ることを前提で話します 辛み:普通に作ると問題がサイレントに起きる ライブラリを作る上で少し注意すべきことがある…

mavenリポジトリにローカルディレクトリを指定する

repositories { mavenCentral() // maven { url 'file://path/to/maven/dir' } } しらなかったー。

仕様書の表をそのまま書くenumテーブルパタン

最近のenumはただ値を列挙するだけでなく、フィールドやメソッドを持てることが多いです そうゆう機能を最大限にいかす方法としてenumテーブルパタンを紹介します たとえば各商品の原価に対して値段を決める仕様があるとします 仕様書はこんな感じ 商品と値…

【gradle】デフォルトのjarを自作のjarに差し替える

自分で設定をカスタマイズしたjarを生成したい 公式ドキュメントによると、自作jarのタスクを作って、それをartifactsで登録すればOKのようですが、それだとデフォルトのjarも作られ、成果物が2つになってしまう... なのでデフォルトのjarは削除するようにし…

vavrからEitherだけ抜き取りたい

サーバサイドkotlinを始めました 今まではjava8 + lombok + vavrだったのをkotlinに変更 サンプル作ってみたけど、変なハマりポイントもなく快適に開発できた 個人的にはjava界の黒魔術ことlombokを撲滅できたことに満足していますw ただし、vavrについては…

Optionalを使うとカバレッジ率が上がる!

カバレッジ率について実験してみる カバレッジ率が微妙なコード まず例題としてこんなコードがあるとする Hoge.java public class Hoge { public static String getOrNull(String str) { if(str == null) { return "null"; } return str; } } HogeTest.java …

型をoptionalに変えてバグった

テストのないコードに変更を加えたら動かなくなった あるある感があったのでメモ javaは「型があるから安心」ではない 元のコードはこんな感じ public class SampleEntity { LocalDate date; ... } EntityがLocalDateを持ってる これを仕様変更でOptionalに…

【Java8】メソッド参照は型安全を壊してる?

まぁなぁ。ラムダ式はクラス名やメソッド名の縛りをぶっ壊してるから、型安全的に作りたいときは微妙なんだよなぁ。— なおしむ (@naosim_) 2016, 2月 16 こんなことをつぶやいたらわりと盛り上がったのでメモ。 例えばこんなコードがあったとすると interfac…