37

我发现PropertyEditorManager每个基础注册/查找编辑器ThreadGroupContext,而不是 Java7 之前的每个全局注册表。

Java7 每次都会为新的ThreadGroup. 因此,PropertyEditorFinder(实际上注册/查找编辑器)又是新的。

Java 对某些类( 、 等)使用预定义的编辑器,Byte并将Long它们注册到PropertyEditorFinderat ctor)。假设我想PropertyEditor为一些预定义的类(即 Long)注册我自己的。在 Java6 中很容易做到,但在 Java7 中,每次在 new 中创建线程时,ThreadGroup我都会丢失编辑器。

那么您能否告诉我有什么解决方案可以很好地处理哪些编辑器是为ThreadGroupJava7 中的新创建的?如果遇到一些问题,你如何克服它?

PS我想我应该为我的英语道歉=)

PPSThreadGroupContextAppContext. 而且我希望创建上下文的实现是相似的:两者都使用ThreadGroup到上下文之间的映射(AppContext在 java 6 中,ThreadGroupContext在 java 7 中)。java 6AppContext对 new使用相同的方法ThreadGroup作为其父级。换句话说AppContext,用于ThreadGroupjvm 中的整个树。但不幸的是,创造ThreadGroupContext是不同的——它只是一个新群体的新背景。因此,如果有一天ThreadGroupContext会使用相同的创建技术,这个问题就会自动解决。

4

1 回答 1

1

如果您有一个 FQPN 为 java.lang.Long 的类,您只需实现一个名为 java.lang.LongEditor 的类并将其与您的应用程序一起分发。一般来说,只需实现一个类,该类的名称是您要编辑的类的名称,并在其末尾附加 Editor,Java 应该会自动找到它

于 2013-12-28T21:02:44.763 回答