chevron_left

メインカテゴリーを選択しなおす

cancel
きり丸
フォロー
住所
未設定
出身
未設定
ブログ村参加

2022/07/22

arrow_drop_down
  • Javaでメソッド参照を使ったまま、ラムダ式で条件否定をする(Predicate.not)

    私はラムダ式での可読性を上げるため、メソッド参照を使用することが多いです。ただ、メソッド参照を使用したまま条件否定する方法を知らなかったため、無名関数を使用して条件を否定していました。または、内部で条件否定をしたメソッドを別に用意していることもありました。 今回、メソッド参照を使用したまま条件否定する方法を知ったので、それを残します。 環境 Java 17 対応 Predicate.notを使用する。 次のコードは、日本円の商品以外の合計を取得するコードです。 public record Currency(String unit, int value) { public boolean isJ…

  • PythonでJSONを比較したい(I want assert JSON by Python)

    環境 Python 3.9 ユースケース PythonでAPI開発を行い、レスポンスのJSONを比較したい。 次のJSONが等価であることを期待する。 { "id": 100, "name": "kirimaru" } { "name": "kirimaru", "id": 100 } できていないこと ソート順を無視したJSONの配列の比較。 対応 JSONを直接比較するような方法は見つかりませんでした。その代わりに、1度辞書型に変換することで目的の比較ができます。 JSON形式の文字列から辞書型に変換するには次のコードで変換できます。 import json json.loads(f"{J…

  • Javaで日付の差が何ヵ月かを計算する。あまりは切り上げる (LocalDate, ChronoUnit)

    閏年等を考慮しだしたら混乱したのでメモ残します。 環境 Java 17 対応 対応自体は簡単で、ChronoUnit.MONTHESで月の差分を取得できます。今回は、1ヵ月に満たない日付がある場合は切り上げるので+1するだけです。 LocalDate start; LocalDate end; ChronoUnit.MONTHS.between(start, end) + 1; テストケース 下のことに気付けていれば、うるう日を考慮して網羅的にテストする必要はありません。 2022/01/01~2022/01/31 1 0ヵ月 + あまり30日 2022/01/01~2022/02/01 2 …

  • Pythonでインスタンスが自作型ではなく、組込み型(built-in types)であることを判別する(isinstance)(primitive types)

    Pythonにて処理する際のインスタンスが組込み型(built-in types)であることを判別したかったのですが、簡単にはできませんでした。もし、簡易にできるようになったら、教えてください。 なお、組込み型(built-in types)とは、Pythonが定義しているstr, int等々の最初から定義されている型のことを指します。Code SmellとしてはPrimitive Obsession(基本データ型への執着)という名前が使われているので、Primitive型といっても問題ないと思われますが、今回の記事ではPythonの公式ヘルプで表現されている組込み型(built-in typ…

  • Lombokで自動生成されるGetterのprefixを変更したかった(Accessor prefixが使いたかった)

    うまくいかなかったことのメモ。 環境 IntelliJ IDEA 2021.3.3 (Ultimate Edition) 2022/05/07時点 きっかけになったツイート なるほど。APIでyyyymmddのフォーマットを期待するrequest date型を用意してたけど、そこからlocaldateに変換するときにメソッド名をどうするか少し困ってた。as stringas localdateってメソッドを用意すればわかりやすい。 https://t.co/hHMG6YtFoA— きり丸 (@nainaistar) 2022年5月5日 twitter.com APIのリクエストBodyにて、日…

  • IntelliJ IDEAのLive Templatesでよく使うコードを登録して生産性アップする(テストのNestedクラスを生成する)

    IntelliJ IDEAでは「Generate code」という機能があります。「Alt + Insert」等のショートカットキーで呼び出すことができます。 この機能を呼び出すと、「@Test」「@BeforeEach」等々のよく使用されるコードが生成されます(公式によると、このよく使用するコードはVelocityテンプレート言語であるようです) ただし、「Generate Code」機能ではすでに存在しているコードをカスタマイズできるものの、新規でコードを登録することはできないようです。 そこで、似たような機能がある「Live Templates」機能を使用して、よく使うコードを登録して一…

arrow_drop_down

ブログリーダー」を活用して、きり丸さんをフォローしませんか?

ハンドル名
きり丸さん
ブログタイトル
きり丸の技術日記
フォロー
きり丸の技術日記

にほんブログ村 カテゴリー一覧

商用