假設我有一個Java類Course
,它有一些方法testMethod
。如何公開此功能,這樣我可以用它用手寫的JavaScript如下交互:如何通過GWT中的某個JavaScript接口公開Java類的功能?
someCourse.testMethod();
其中someCourse
直接從Java代碼通過一個本地方法傳遞,如:
private native void AssociateCourse(Course course) /*-{
someCourse = course;
}-*/;
我在實現這個過程中遇到的主要問題是,GWT不提供任何方式來訪問Course
構造函數的原型。例如,以下內容無效:
private native void Expose() /*-{
$wnd.Course = @mypackage.Course;
}-*/;
因爲它期望它訪問某個字段,而不是全部。
我想避免使用像gwt exporter這樣的庫,因爲我覺得不得不將它與我的處理應用程序邏輯的源代碼結合起來,這將使我很難區分我的代碼的這兩個方面,這將是一件壞事例如,如果代碼是在像這樣的GWT項目和Android應用程序之間共享的。
這會導致在課程的每個實例上'testMethod'的冗餘實現,而不僅僅是一個像它的原型那樣的共享對象? –