我發現PropertyEditorManager
寄存器/根據ThreadGroupContext
找到編輯器,而不是每個全局註冊表的Java7之前的編輯器。Java7屬性編輯器通過ThreadGroupContext註冊
Java7每次都會爲新的ThreadGroup
創建一個新的ThreadGroupContext。因此PropertyEditorFinder(實際上註冊/發現編輯器)也是新的。
Java使用預定義的編輯對於某些類(Byte
,Long
等),並在ctor
它們登記在PropertyEditorFinder
)。假設我想爲某些預定義的類(即長)註冊我自己的PropertyEditor
。在Java6中很容易,但在Java7中,每次在新的ThreadGroup
內創建線程時,我都會丟失編輯器。
所以,你能告訴我有沒有任何解決方案以一種很好的方式處理在Java7中爲新的ThreadGroup
創建哪些編輯器?如果面對一些問題,你如何克服它?
P.S.我想我應該爲我的英語道歉=)
P.P.S. ThreadGroupContext
是AppContext
的替代品。我希望創建上下文的實現類似:都使用ThreadGroup
與上下文(java 6中的AppContext
,java 7中的ThreadGroupContext
)之間的映射。而java 6對於其父母使用與新的ThreadGroup
相同的AppContext
。換句話說,AppContext
用於jvm中的整個ThreadGroup
樹。但不幸的是創建ThreadGroupContext
是不同的 - 它只是一個新組的新環境。所以如果有一天ThreadGroupContext
將使用相同的創建技術,問題會自動解決。
我與PropertyEditorManager有同樣的問題,但我沒有找到解決方案然而.. – Vadeg