doto is great for functions returning void. You can still use threading macro if the Java object returns self.
Method hints pop up after the first dot.
If you need to implement interfaces or extend objects then I would write wrappers which do the reify work and pass function arguments to those wrappers. Otherwise the code becomes noisy and has less signal.
(defn foo [^^GoogleFactoryProxy factory-proxy] (doto (.fooMethod factory-proxy) (.addStuff (stuff))))
doto is great for functions returning void. You can still use threading macro if the Java object returns self.
Method hints pop up after the first dot.
If you need to implement interfaces or extend objects then I would write wrappers which do the reify work and pass function arguments to those wrappers. Otherwise the code becomes noisy and has less signal.