Java7 PropertyEditors通过ThreadGroupContext注册
我发现PropertyEditorManager
在每个ThreadGroupContext
基础上注册/查找编辑器,而不是像Java7之前的每个全局registry那样。
而Java7每次都为一个新的ThreadGroup
创build一个新的ThreadGroup
。 因此,PropertyEditorFinder(实际上注册/find编辑器)也是新的。
Java为某些类( Byte
, Long
等)使用预定义的编辑器,并将它们注册到PropertyEditorFinder
( ctor
)中。 比方说,我想注册我自己的PropertyEditor
一些预定义的类(即长)。 在Java6中很容易,但在Java7中,每次在新的ThreadGroup
中创build线程时,都会丢失我的编辑器。
那么你能告诉我有什么解决scheme可以很好地处理在Java7中为一个新的ThreadGroup
创build的编辑器吗? 如果面对一些问题,你是如何克服的?
PS我想我应该为我的英语道歉=)
PPS ThreadGroupContext
是AppContext
的替代品。 我希望创build上下文的实现类似:都使用ThreadGroup
与上下文(Java 6中的AppContext
,Java 7中的ThreadGroupContext
)之间的映射。 而Java 6使用与其父代相同的AppContext
作为新的ThreadGroup
。 换句话说, AppContext
用于jvm中的整个ThreadGroup
树。 但不幸的是创buildThreadGroupContext
是不同的 – 它只是一个新组的新的上下文。 所以如果有一天ThreadGroupContext
将使用相同的创build技术,问题将自动解决。
如果您有一个java.lang.Long的FQPN类,您只需要实现一个名为java.lang.LongEditor的类并将其与您的应用程序分发。 一般来说,只需要实现一个类,该类的名字是你想要编辑的类的名称,并且在编辑器的后面添加了Editor,Java会自动find它