アノテーション型 JsonbSubtype


  • @JsonbAnnotation
    @RetentionSE(RUNTIMESE)
    @TargetSE({})
    public @interface JsonbSubtype
    サブ型は JsonbTypeInfo に強くバインドされています。
    Type は、特定のエイリアスを処理するとき、または指定された型のインスタンスを処理するときに作成されるインスタンスのクラスを定義して、どのエイリアスを使用するかを決定します。
    クラス名の代わりにエイリアスが使用されます。特定の JsonbTypeInfo にバインドされたすべての定義済みサブ型の中で一意の値である必要があります。エイリアスを処理および検証し、重複するエイリアスが見つかった場合は、例外をスローする必要があります。
    
     // Example
     @JsonbTypeInfo({
          @JsonbSubtype(alias = "dog", type = Dog.class)
          @JsonbSubtype(alias = "cat", type = Cat.class)
     })
     interface Animal {}
    
     class Dog implements Animal {
         public String isDog = true;
     }
     class Cat implements Animal {
         public String isCat = true;
     }
     class Rat implements Animal {
         public String isRat = true;
     }
    
     jsonb.toJson(new Dog());// {"@type":"dog","isDog":true}
     jsonb.toJson(new Cat());// {"@type":"cat","isCat":true}
     jsonb.toJson(new Rat());// {"isRat":true}
     
    • 必須定数のサマリー

      必須要素  
      修飾子と型 必須要素 説明
      StringSEalias
      クラス名の代わりに使用される型エイリアス。
      ClassSE<?>type
      エイリアスにバインドされた実際の型。
    • 要素の詳細

      • alias

        StringSE alias
        クラス名の代わりに使用される型エイリアス。
        戻り値:
        エイリアス値
      • type

        ClassSE<?> type
        エイリアスにバインドされた実際の型。
        戻り値:
        別名バインド型