<div dir="ltr"><div class="gmail_extra"><div>CL-USER> (#"getMultiDimensional" 'Array)<br></div><div>#(#<jarray [I@2b8edf4d {30E64E92}> #<jarray [I@60306c52 {B17ACD4}> #<jarray [I@3f5397fc {91F41DF}> #<jarray [I@631d9c26 {2CF6B5A0}>)</div>

<div><div>CL-USER> (#0"getMultiDimensional" 'Array)</div><div>#<jarray [[I@4068f9fc {2BF4306D}></div></div><div><br></div><div>or</div><div><div>(jstatic-raw "getMultiDimensional" (find-java-class "Array"))</div>

<div>#<jarray [[I@56810247 {2FBCAFAF}><br></div></div><div><br></div><div>So try using #0"..." if you are using jss or jcall-raw if not.</div><div><br></div><div>-Alan</div><br><div class="gmail_quote">On Thu, Feb 6, 2014 at 9:47 AM, Mark Evenson <span dir="ltr"><<a href="mailto:evenson@panix.com" target="_blank">evenson@panix.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class="h5"><br>
On Feb 6, 2014, at 2:52, Cyrus Harmon <<a href="mailto:ch-lisp@bobobeach.com">ch-lisp@bobobeach.com</a>> wrote:<br>
<br>
> I am trying to connect ABCL up with some java code that uses multidimensional arrays of the form:<br>
><br>
>        int[][] theArray = new int[4][4];<br>
><br>
> The problem is that when I call this code I get something like this in return:<br>
><br>
>       #(#<jarray [I@2d983837 {6492BA43}> #<jarray [I@5d02b84a {5D9131FA}> #<jarray [I@67684413 {6E4D706E}> #<jarray [I@1e107e55 {4CD60DDE}>)<br>
><br>
> that is a lisp array that contains 4 java arrays. I can’t pass this off to a method like this:<br>
><br>
>    static public int[][] arrayTest2(int[][] oldArray) {<br>
>      …<br>
>    }<br>
><br>
> I can work around this by creating a new java array myself (and populating it appropriately), but this is no fun. Is this the intended behavior?<br>
<br>
</div></div>Regardless of whether this behavior was intended—for which I can find no evidence—it certainly seems wrong given that for the Java class:<br>
<br>
public class Array {<br>
  public static int[][] getMultiDimensional() {<br>
    return new int[4][4];<br>
  }<br>
<br>
  public static int[][] returnRef(int[][] ref) {<br>
    return ref;<br>
  }<br>
}<br>
<br>
Compiled with javac, (java:add-to-classpath “~/directory/“), then the following<br>
<br>
CL-USER> (java:jnew-array "int" 4 4)<br>
#<jarray [[I@2e9e32cc {141906FD}><br>
CL-USER> (jstatic "returnRef" "Array" *)<br>
#(#<jarray [I@4147aa25 {47F3849E}> #<jarray [I@4487c5f9 {2DD68195}><br>
  #<jarray [I@5dd574b5 {68E14733}> #<jarray [I@1e099b10 {8A346D8}>)<br>
<br>
shows that we are clearly getting a different sort of Lisp object than we pass into the Java FFI for what should be a symmetric reflection.<br>
<br>
Filed as [ticket-347][].<br>
<br>
<br>
[ticket-347]: <a href="http://abcl.org/trac/ticket/347" target="_blank">http://abcl.org/trac/ticket/347</a><br>
<span class=""><font color="#888888"><br>
<br>
<br>
--<br>
"A screaming comes across the sky.  It has happened before but there is nothing<br>
to compare to it now."<br>
<br>
<br>
<br>
<br>
<br>
<br>
</font></span></blockquote></div><br></div></div>