7

Java 16 レコードの生成されたコンストラクターに注釈を付ける必要があるConstructorPropertiesのような注釈を取得する方法はありますか? @Target(CONSTRUCTOR)例えば:

@ConstructorProperties({"id", "filename"})
public record Person(long id, String filename) {}

この ^ により、次のエラーが発生します。

java: annotation type not applicable to this kind of declaration
4

1 に答える 1

7

これはうまくいきました:

public record Person(long id, String filename) {
    @ConstructorProperties({"id", "filename"})
    public Person {}
}

私の理解では、パラメーター リストのない内部コンストラクターは、コンポーネント リストを使用して作成された既定のコンストラクターにロジックを追加する方法です。どうやら、コンストラクターアノテーションを追加すると、最終結果が得られます:)

于 2021-04-19T20:02:03.967 に答える