On Thu, Jun 16, 2011 at 6:12 PM, Stuart Halloway
<stuart.hallo...@gmail.com> wrote:
>
> Hi Gregg,
> It appears that LocalServiceTestHelper's constructor takes an array 
> of LocalServiceTestConfig. Try
> (def bar (LocalServiceTestHelper. (into-array LocalServiceTestConfig [foo])))
> Stu

Hi Stu,

Would you be the Stuart Halloway whose "Programming Clojure" book I
bought last week?  Nice work!
Using into-array indeed solved the problem - I even found it in the
book, p. 85.  But if you're taking notes for the second edition this
might be a good item for a "Java Interop Gotchas" list.  The method
definition looks like this:

public LocalServiceTestHelper(LocalServiceTestConfig... configs)

I.e. it uses the varargs op ... instead of [].  The sample code uses:

... = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());

i.e. it passes a single object, not an array.  The clojure code
without into-array complains about bad class casting.  So it looks
like there is a minor impedance mismatch between Java and Clojure when
it comes to varargs, unless I missed something.  The rule seems to be:
if the Java method takes varargs, pass it an explicit array.

Thanks

Gregg

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to