当使用gen-class时,生成的.class文件没有java接口的默认方法。
我创建了此重现实例,您可以确认当尝试从gen-class生成的类中调用方法时抛出异常。
- 使用命令
clj -T:build jar
在target/classes生成类文件。
- 使用命令
java -cp
clj -Spath client/main/Main.java
会抛出异常
Exception in thread "main" java.lang.UnsupportedOperationException: otherthing (clojure-sample.foo/-otherthing not defined?)
at clojure_sample.Foo.otherthing(Unknown Source)
at client.main.Main.main(Main.java:9)
一个不太理想的解决方案是在实现java接口的命名空间中添加默认方法,并在其中实现默认方法中所做的操作。