2016-12-14 10 views
0

Clojureでプロキシを使用してJavaクラスを拡張しています。私は、スーパーコールを呼び出すときに返される文字列値を取得したい。どうやってするか?clojureでスーパーコールの文字列戻り値を取得する方法は?

public class Baseclass { 
    public String greet() { 
     return "Hello from Baseclass"; 
    } 
} 

Clojureのコード:

(ns subclass.core 
    (:gen-class) 
    (:import Baseclass)) 

(defn my-greet [] 
    (proxy [Baseclass] [] 
     (greet [] 
      (proxy-super greet))) 

(defn -main [& args] 
    (my-greet)) 

この戻り#object[subclass.core.proxy$Baseclass$ff19274a 0x2dd8954f "[email protected]"]

答えて

1

proxyはクラスのインスタンスを作成しますが、そのクラスのメソッドは呼び出しません。 greetに電話する場合は、greetに電話してください。

+0

ありがとうございました。 '.greet(my-greet)'を呼び出すと動作します。 – boring

関連する問題