爲了與Java互操作的目的,我需要一個具有無限構造函數的類來執行初始化。 這個類的對象需要有類似可變java字段的東西(即對象代表遊戲的後端,並且需要保持遊戲狀態)。添加構造函數deftype創建的類
DEFTYPE確實一切我想做除了提供null構造(因爲我創建帶有字段的類)。
我不需要領域是公共可讀的,所以我能想到的解決方案4:
使用創一流;如果我能避免它,我不想這樣做。
以某種方式編碼deftype知識以外的私有成員變量;我被告知這是無法完成的。
編寫一個修改後的deftype,它也會創建一個空的構造函數;坦率地說,我不知道clojure是否足夠。
以deftype創建的類,並以某種方式添加一個新的構造函數。
最後,我需要一個Java類,因爲我將把它交給將從該類中創建一個新對象的Java代碼。
除了使用gen-class可行性之外,我提出的任何解決方案(或任何我沒有想到的)?
看起來構造函數的創建深入clojure的java代碼中。所以修改deftype本身聽起來有點難,有點壞主意。 –
如何訪問字段並生成實例yourClass.newInstance()和反射?所以也許知道更多的生成類的Java方面的用法將有所幫助,否則我有點害怕是時候爲gen-class :( –