Я узнал, что PropertyEditorManager
регистрирует/находит редакторы на основе ThreadGroupContext
, а не на глобальный реестр до Java7.
И Java7 каждый раз создает новый ThreadGroupContext для нового ThreadGroup
. Таким образом PropertyEditorFinder (который фактически регистрирует/находит редакторы) снова является новым.
Java использует предопределенные редакторы для некоторых классов (Byte
, Long
и т.д.) и регистрирует их в PropertyEditorFinder
в ctor
). Скажем, я хочу зарегистрировать свой собственный PropertyEditor
для некоторого предопределенного класса (т.е. Long). Это легко сделать в Java6, но в Java7 каждый раз, когда потоки создаются в новом ThreadGroup
, я потерял свой редактор.
Итак, не могли бы вы сказать мне, есть ли какое-нибудь решение для обработки с хорошей манерой, какие редакторы создаются для нового ThreadGroup
в Java7? Если вы сталкиваетесь с какой-то проблемой и как вы ее преодолеваете?
P.S. Наверное, я должен извиниться за свой английский =)
P.P.S. ThreadGroupContext
является заменой для AppContext
. И я надеялся, что реализация контекстов создания будет схожа: оба используют сопоставление между ThreadGroup
и контекстом (AppContext
в java 6, ThreadGroupContext
в java 7). И java 6 использует тот же AppContext
для нового ThreadGroup
как для своего родителя. Другими словами, AppContext
используется для всего дерева ThreadGroup
в jvm. Но, к сожалению, создание ThreadGroupContext
отличается - это просто новый контекст для новой группы. Поэтому вопрос автоматически разрешается, если в один прекрасный день ThreadGroupContext
будет использоваться тот же метод создания.