[英]Clojure Java Interop of Enum Normalizer.Form
我花了很長時間試圖弄清楚如何在Clojure中使用Java互操作對Unicode進行標准化。 我一直在嘗試使用java.text.Normalizer ,但是在嘗試調用枚舉Normalizer.Form.NFD時,我一直收到ClassNotFoundException
。 本質上,我只是想在Java中做這樣的事情:
java.text.Normalizer.normalize("Ἑλλάς", java.text.Normalizer.Form.NFD);
我一直在嘗試在Clojure中執行類似的操作,但無濟於事:
(import java.text.Normalizer)
(java.text.Normalizer/normalize "Ἑλλάς" java.text.Normalizer.Form/NFD)
似乎可以找到Normalizer/normalize
,但是進入Normalizer.Form.NFD
似乎是問題,因為我不斷收到錯誤:
Caused by java.lang.ClassNotFoundException java.text.Normalizer.Form
我正在Windows上使用: Clojure 1.8.0
和Java HotSpot(TM) 64-Bit Server VM 1.8.0_112-b15
我繼續並在常規Java中對其進行了測試,並且效果很好。 因此,該類已安裝在系統上。 有人可以告訴我我在做什么錯嗎? 我打錯電話了嗎? 我可能還需要導入其他內容嗎? 任何意見是極大的贊賞。
這給您帶來麻煩,因為Form
是一個inner class
。 在字節碼中,類outer.inner
實際上表示為outer.inner
outer$inner
。 進一步了解此問題以及該Google網上論壇帖子 。
(import java.text.Normalizer
java.text.Normalizer$Form)
(java.text.Normalizer/normalize "Ἑλλάς" java.text.Normalizer$Form/NFD) ;; "Ἑλλάς"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.