簡體   English   中英

Clojure到Java Interop

[英]Clojure to Java Interop

我試圖讓javafx2與Clojure一起工作 - 在實現一個抽象類如DoubleBinding時,我不確定在Clojure中等效的super.bind(moo)是什么。 我正在實現的類可以在這里找到: http//docs.oracle.com/javafx/2/api/index.html

(def moo (ObservableDoubleValue. ...))
(def foo (proxy [DoubleBinding] []
            (computeValue []
               (Math/sqrt (.getValue moo)))))



final ObservableDoubleValue moo = ...;   
DoubleBinding foo = new DoubleBinding() {
     {
         super.bind(moo);
     }

     @Override
     protected double computeValue() {
         return Math.sqrt(moo.getValue());
     }
 };

根據代理文檔代理中的方法無法訪問super ...我建議您使用gen-class生成gen-class並使用它。 如果您使用:exposes-methods指令公開它們,則可以訪問super的方法。 就像是:

(gen-class :name MyDoubleBinding
           :extends DoubleBinding
           :exposes-methods {bind my-bind}
 ....
 )

然后從你的構造函數調用-my-bind ...

請查看Clojure網站上關於類生成的文檔,以獲取有關gen-class更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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