![](https://secure.gravatar.com/avatar/b053ca7abf2716d9df3ce01278d60947.jpg?s=120&d=mm&r=g)
On 2016/3/4 18:54, EGarrulo wrote:
Hello ABCL developers,
has anybody written some macros to make calling Java from ABCL more straightforward? I mean something that, instead of this code from the ABCL documentation:
(defun void-function (param) (let* ((class (jclass "Main")) (intclass (jclass "int")) (method (jmethod class "addTwoNumbers" intclass intclass)) (result (jcall method param 2 4))) (format t "in void-function, result of calling addTwoNumbers(2, 4): ~a~%" result)))
would let you write something like this, for example:
(format t "in void-function, result of calling addTwoNumbers(2, 4): ~a~%" ;; Let's imagine that we have defined a -> macro. (-> |Main.addTwoNumbers| 2 4)
abcl-1.3.3 currently includes code in the ABCL-CONTRIB mechanism for two such additional syntaxes, namely [JFLI-ABCL][1] and [JSS][2]. [1]: http://abcl.org/trac/browser/trunk/abcl/contrib/jfli/README [2]: http://abcl.org/trac/browser/trunk/abcl/contrib/jss/README.markdown One may load these packages by ```lisp (require :abcl-contrib) (require :jfli) ``` or ```lisp (require :abcl-contrib (require :jss) ``` I don't really know much about JFLI, but use JSS extensively. The example of ```lisp (-> |Main.addTwoNumbers| 2 4) ``` would become ```lisp (#"addTwoNumbers" 'Main 2 4) ``` in JSS. -- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."