У меня есть класс, который может использоваться несколькими клиентами (т. Е. С графическим интерфейсом, внешней системой и т. Д.).
@XmlRootElement
class A {
String field = "Hello World";
public String getField() {
return field;
}
}
Для одного клиента я не хочу, чтобы полученный XML-код включал все детали в класс, поэтому я отмечаю детали, которые хочу скрыть, с помощью XmlTransient.
@XmlRootElement
class A {
String field = "Hello World";
@XmlTransient
public String getField() {
return field;
}
}
Проблема в том, что другой клиент должен видеть эти данные, и теперь они скрыты.
Как мне выполнить требование, когда у меня есть два клиента, которые хотят почтиодни и те же данные?Я выполнил эту работу, расширив букву А и пометив соответствующим образом для удовлетворения потребностей каждого клиента:
@XmlRootElement
class B extends A {
@XmlTransient
public String getField() {
return super.getField();
}
}
@XmlRootElement
class C extends A {
public String getField() {
return super.getField();
}
}
Это работает, но кажется громоздким.Есть ли другие способы сделать это?Я понимаю, что в показанном мною примере я могу использовать XmlJavaAdapter, но в моем реальном коде данные, на которые я ссылаюсь, могут быть частью составного объекта, и XmlJavaAdapter кажется неуместным.чувство!