簡體   English   中英

Enum Normalizer.Form的Clojure Java互操作

[英]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.0Java 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM