On Aug 19, 2011, at 02:08 , Patrice Seyed wrote:
Hello,
With the following expression:
(#"asList" 'Arrays "test")
I get the error:
Java exception 'SchemeException: java.lang.IllegalArgumentException: argument type mismatch ARGUMENT MISMATCH for method
public static java.util.List java.util.Arrays.asList(java.lang.Object[]) called with ("test")'. [Condition of type JAVA-EXCEPTION]
The Arrays.asList() method takes an array of java.lang.Object ("java.lang.Object[]") as a parameter, while you are passing it a single String ("java.lang.String").
One way to convert the argument to a "java.lang.String[]", which is a subtype of "java.lang.Object[]" therefore a valid parameter to Arrays.asList() would be to use JAVA:AVA-ARRAY-FROM-LIST:
CL-USER> (let ((array (jnew-array-from-list "java.lang.String" '("Test")))) (#"asList" 'Arrays array)) #<java.util.Arrays$ArrayList [Test] {13DA6112}> CL-USER>
-- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."