タグ

ブックマーク / blog1.mammb.com (3)

  • Java Stream におけるソートのお作法 - A Memorandum

    ソート対象 昔ながらの読みにくいソート Lambda を利用した冗長なソート Java8 Stream における正しいソート thenComparing による複合キーのソート ソート条件の指定 null コンパレータ Comparable Map のソート まとめ ソートキーの指定 ソート条件の指定 ソート条件 Map のソート ソート対象 以下のような id と name プロパティを持った Item を考えます。 public class Item { private Integer id; private String name; public Item(Integer id, String name) { this.id = id; this.name = name; } public Integer getId() { return id; } public String ge

    Java Stream におけるソートのお作法 - A Memorandum
  • 知らなくても困らない Javaクラスのバイトコードの読み方 - A Memorandum

    クラスファイルの中身 クラスファイルの構造 javap コマンド javap 出力の概要 型とメソッドの読み方 オペランドスタック コンストラクタの実行 加算メソッド invoke 系命令 条件判断 for ループ まとめ 普段使いでは困ることはないですが、昨今はバイトコードマニピュレーションによる黒魔術が謳歌しているため、知っていると役に立つ場合もあるバイトコードの最低限の読み方を説明します。 クラスファイルの中身 以下のような簡単なソースコードを考えましょう。 public class Class1 { public int add(int x, int y) { return x + y; } } このソースコードをコンパイルして作成された Class1.class の中身のダンプを見てみます。 $ hexdump -C Class1.class 00000000 ca fe ba

    知らなくても困らない Javaクラスのバイトコードの読み方 - A Memorandum
  • リリース間近 JUnit5 に備えよう - A Memorandum

    はじめに Gradle の設定 テストの実行 アサーション Matcher ライフサイクル Display Names @Tag Nested Tests コンストラクタとテストメソッドへの DI Assumptions Dynamic Tests ライフサイクルコールバック はじめに JUnit5 のリリースが近づいています。現在は M2 で M3 の作業が進んでいます。 今のところの予定は以下のようになってます。 2016/10/21 M3 リリース 2016/11/30 M4 リリース 2016/12/30 M5 リリース JUnit4 とは(中身は)全く別ものです。が普通に使う分には特に今までと同じ感覚で使えます。 Java8 以降をサポートという潔い割り切りになってます。 Version 5.0.0-M2 のユーザガイドからかいつまんでみます。 Gradle の設定 プラグインが

    リリース間近 JUnit5 に備えよう - A Memorandum
  • 1