2
我想用clojure來建立一個java庫。我希望該類符合java規範,這意味着我期望構建器模式是最直觀的。使用它的庫將調用它像這樣有clojure生成一個java類,它像一個建設者模式使用
String actualHtml =
builder
.setTitle("Pizza Time")
.setProperty(n)
.setProperty(n+1)
.build();
一個奇怪的編譯步驟,我能得到這個在每個擦除方法的返回值,編譯,然後將其添加,並再次編譯編譯.....但我想知道是否有更標準的方法。
(ns scorecard.core
(:gen-class
:name scorecard.Builder
:state state
:init init
:methods [[setTitle [String] scorecard.Builder ]
[[setProperty [String] scorecard.Builder ]
[build [] String ]]))
以上將失敗,並
Exception in thread "main" java.lang.ClassNotFoundException: scorecard.Builder, compiling:(scorecard/core.clj:1:1)
如果我刪除的返回值進行編譯,然後重新編譯它的工作原理。我試圖添加一個預編譯配置文件,但依賴關係與:gen-class方法在同一個文件中。
:profiles { :precomp {
:source-paths ["src/scorecard"]
:aot [parser.ast] } })
有沒有一種方法可以聲明一個返回值,它將返回不會拋出錯誤的類本身?