Как сериализовать атрибут класса? - PullRequest
0 голосов
/ 22 апреля 2019

Мне нужно создать схему JSON из кода. Вот пример моей проблемы:

public class A implements Serializable{
 private ControllerA controllerId;
}

public ControllerA extends RefString{
 private ControllerA(){}
 public ControllerA(string id){
  super(id)
 }
}

public RefString extends Ref<String>{
 public RefString() {
  super();
 }

 public RefString(String id) {
  super(id);
 }
}

public abstract class Ref<Type> implements Serializable{
 private Type id;
 protected Ref() {}
 public Ref(Type id) {
   this.id = id;
 }

 public Type getID() {
  return this.id;
 }

 @Override
 public String toString() {
  return "Ref [id=" + id + "]";
 }
}

когда я пытаюсь создать схему из класса A, используя Джексона, сгенерированный вывод:

"controllerId" : {
 "type" : "object",
 "id" : "urn:A:ControllerA"
   "properties" : {
     "id" : {
       "type" : "string"
     }
   }
}

Однако я хочу что-то вроде этого:

"controllerId" : {
 "type" : "string"
}

Какие-нибудь решения? Я попытался сериализовать класс ControllerA, но этого недостаточно, потому что тип «String» указан в классе Ref <>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...