2
匿名實現抽象類的,我需要通過現有的抽象基類的匿名子類,像這樣定義爲實現在JavaScript監聽器:犀牛
public class Speaker {
public static abstract class MyListener {
private String name;
public MyListener(final String name) { this.name = name; }
public abstract boolean listen(final String words);
}
}
在java中,實施監聽器匿名子類實現:
MyListener newListener = new MyListener("George") {
public boolean listen(final String words) throws Exception { Thread.sleep(500); }
}
如果我嘗試這樣做,在JavaScript中,我不能叫抽象基類的構造函數,並在同一時間實現虛擬功能。
它工作,如果我刪除構造函數參數,然後調用MyListener()與方法實現作爲參數創建我需要的子類的實例。但我實際上需要調用的構造函數的構造函數參數和的方法實現。
我不清楚你是如何在這個問題上涉及Javascript的。你能提供一個你嘗試過的*不能工作的例子嗎? – Pointy 2010-07-01 12:11:14
我有用Java編寫的可編寫腳本的應用程序。我可以使用JS控制檯進行一些操作(通過調用我的應用程序類的方法)。我想編寫一個腳本來處理這個應用程序的一些事件,但爲此我需要實現一個監聽器。 什麼不起作用:我不能在Rhino中編寫「x = Speaker.MyListener(」George「,function(words){sleep();})」:JS控制檯獲取一個InvocationTargetException,並退出。 – 2010-07-01 13:35:47