タグ

2021年4月17日のブックマーク (1件)

  • JavaのRecordでは配列を使わないほうが良いという話 - Kengo's blog

    配列使うとmutableになるから使うべきではない、というのに加えて。生成される hashCode() と equals(Object), toString() が配列を考慮しない実装になっているため、JavaのRecordでは配列を使わないほうが良いようです。 検証コード 生成される hashCode() と equals(Object) の挙動を検証するコードです。 gist.github.com なぜこうなるのか ObjectMethods クラスによって生成されるコードを見ると、 Arrays.hashCode(int[]) ではなくint[].hashCode()が、Arrays.equals(int[], int[]) ではなく int[].equals(Object) が使われているようです。これは考慮漏れというわけではなく、ObjectMethodsクラスのjavadocに

    JavaのRecordでは配列を使わないほうが良いという話 - Kengo's blog
    eller
    eller 2021/04/17
    書いた。業務コードでRecordに配列を使うことはまず無いと思うんですが、競プロでMapやSetに入れるRecordでなら、配列をうっかり使うことが私の場合はありそう。