当使用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接口的命名空间中添加默认方法,并在默认方法内部执行在java接口中执行的操作。