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.