Объект, который возвращает экземпляр самого себя

Предпосылки: Мой последний проект не может использовать большую библиотеку, что меня огорчает. Есть несколько вещей, которые я хотел бы получить из любой библиотеки, например, отсутствующие функции addClass , hasClass , removeClass , совместимые addEventListener ] и т. д. Итак, я создал небольшой объект , о котором мне хотелось бы высказать свое мнение в другой раз, но у меня возникли небольшие проблемы с настройкой его так, как я хотел. Для удобства использования я хочу, чтобы объект возвращал новый экземпляр самого себя при создании.

Дано:

 $ = function() {
    this.name = "levi";

    return this;
};

console.log($());

Мы получаем DOMWindow вместо $ из-за причудливой природы ] это в JavaScript. Что более странно для меня, так это то, что console.log (new $ (). Name) правильно возвращает " @XmlRootElement (name = "соединение") открытый класс Compound расширяет Value {@XmlElements ({@XmlElement (name = "simple", type = Simple.class), ...

У меня такая ситуация

@XmlType(name ="", propOrder={"value"})
@XmlRootElement(name = "compound")
public class Compound extends Value {
  @XmlElements({
  @XmlElement(name="simple", type=Simple.class),
  @XmlElement(name="compound", type=Compound.class)
  })
  protected List value;
  // ...
}

Итак, Compound - это список простых и / или Compound. Оба являются наследниками Value, которое определено как

public abstract class Value implements Serializable {}

Simple - это класс, помеченный адаптером для маршалинга / демаршализации в / из простой строки

@XmlJavaTypeAdapter(SimpleAdapter.class)
public class Simple extends Value {
  private java.lang.String simple;
  // ...
}

Compound не требует адаптера.

Проблема в том, что если Я использую Simple «как есть», он правильно маршалирует / демаршалирует как

my.text.here

, но если я использую его внутри Compound, он выводит что-то вроде


  //...
  
    my.text.here
  
  //...

И мне просто интересно, почему ... Я что-то пропускаю? я удаляю это «значение»? It seems to me that the Adapter is not used at all, is it possible to use adapters in types marked inside @XmlElements?

EDIT

After few tests i found that the problem could be in how i handle a Simple instance. So I simplify my initial question in:

Given the a Simple class like

@XmlRootElement("simple")
public class Simple {
  private java.lang.String innerText;
  // getters/setters
}

how can i obtain a marshalled output like


  my.inner.text.here

instead of


  my.inner.text.here

?

7
задан Andrea Boscolo 23 May 2011 в 20:06
поделиться