レコードのコンパクトコンストラクター内のメソッド呼び出しがフィールドにアクセスしている場合に報告します。

このような呼び出しは疑わしく見えます。レコードのフィールドはこのようなメソッド呼び出しの際には初期化されない可能性があるためです。

例:


public record MyRecord(String name, int id) {
    public MyRecord {
        validateMyFields(); // 疑わしく見えます
    }

    private void validateMyFields() {
        if (this.name.isEmpty()) {
            throw new IllegalArgumentException();
        }
    }
}

2024.1 の新機能です