3

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());
     }
 };
4

1 に答える 1

1

プロキシのドキュメントによると、プロキシのメソッドはアクセスできませんsuper...を使用してクラスを生成しgen-class、使用することをお勧めします。ディレクティブsuperで公開する場合は、 のメソッドにアクセスできます。:exposes-methods何かのようなもの:

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

-my-bind次に、コンストラクターから呼び出します...

詳細については、Clojure のサイトでクラス生成に関するドキュメントを確認してください。gen-class

于 2012-07-27T05:46:30.427 に答える