我正尝试在Clojure中编写JavaFX应用程序。作为一个简单的测试,我想尝试启动一个Hello World。要延长Application
,我决定尝试使用proxy
而不是:gen-class
。我希望能够创建一个创建Application
的简单函数,而不是每次都要求我写样板。创建JavaFX代理会导致UnsupportedOperationException
我想出了一个简单的例子是:
(let [^Application app
(proxy [Application] []
(start [self stage] (println "Hello World")))]
(Application/launch ^Class (.getClass app)
(into-array String [])))
的问题是,这会导致UnsupportedOperationException
:
UnsupportedOperationException异常启动chat.graphics_tests.javafx_wrapper.proxy $ javafx.application.Application $ ff19274a.start(:-1)
它似乎找不到start
方法t我实施的帽子。我的第一个想法是,start
的论点是错误的。他们似乎是正确的。它收到的第一个参数是“this
”,然后是主要阶段。尽管我尝试了不同数量的参数,但我仍然得到相同的错误。根据文档:
如果接口方法不提供一种方法,FN,一个 则将抛出UnsupportedOperationException它应该是 调用。
更进一步我这个怀疑。
错误很模糊。有没有人看到问题是什么?
我刚刚读到'proxy'不能用在这里,因为'Application/launch'需要一个命名类。猜猜我正在使用':gen-class'。 – Carcigenicate