2012-11-16 12 views
37

Ho scoperto che PropertyEditorManager registra/trova editor per ThreadGroupContext in base, non per registro globale come precedente a Java7.PropertyEditors Java7 registrati tramite ThreadGroupContext

E Java7 ogni volta crea un nuovo ThreadGroupContext per un nuovo ThreadGroup. Così PropertyEditorFinder (che registra/trova effettivamente gli editor) è di nuovo nuovo.

Java utilizza editor predefiniti per alcune classi (Byte, Long, ecc) e li registra in PropertyEditorFinder a ctor). Diciamo che voglio registrare il mio PropertyEditor per alcune classi predefinite (ad esempio Long). È facile da fare in Java6, ma in Java7, ogni volta che i thread vengono creati all'interno del nuovo ThreadGroup ho perso il mio editor.

Quindi, per favore, potrebbe dirmi c'è qualche soluzione per gestire in modo piacevole quali editor sono stati creati per un nuovo ThreadGroup in Java7? Se affrontate qualche problema e come lo superate?

P.S. Credo che dovrei scusarmi per il mio inglese =)

P.P.S. ThreadGroupContext sostituisce AppContext. E speravo che l'implementazione dei contesti di creazione sarebbe stata simile: entrambi utilizzano la mappatura tra ThreadGroup in contesto (AppContext in java 6, ThreadGroupContext in java 7). E java 6 utilizza lo stesso AppContext per il nuovo ThreadGroup come per il genitore. In altre parole, AppContext viene utilizzato per l'intero albero ThreadGroup in un jvm. Ma sfortunatamente la creazione di ThreadGroupContext è diversa: è semplicemente un nuovo contesto per un nuovo gruppo. Quindi la domanda viene automaticamente risolta se un giorno ThreadGroupContext utilizzerà la stessa tecnica di creazione.

+0

Ho lo stesso problema con PropertyEditorManager e non ho trovato la soluzione ancora.. – Vadeg

risposta

1

Se si dispone di una classe con un FQPN di java.lang.Long, è sufficiente implementare una classe denominata java.lang.LongEditor e distribuirla con l'applicazione. In generale, basta implementare una classe che ha il nome della classe che si desidera modificare con Editor aggiunto alla fine di esso, e Java dovrebbe trovarlo automaticamente

Problemi correlati