logo       

RE: calling methods that take an array or list of interfaces: msg#00107

lang.groovy.user

Subject: RE: calling methods that take an array or list of interfaces

No, the prototype is "public void setSites(IWSite[] sites)." It takes
IWSite[]. If you look in the error you will see that the values are actually
WSite. Groovy just can't map them to IWSite[]. I am really beginning to
believe this is a bug and not just a syntax problem. I just find it hard to
believe I am the first person to try this.

Randy

-----Original Message-----
From: Dion Almaer [mailto:dion@xxxxxxxxxx]
Sent: Thu 10/14/2004 3:54 PM
To: user@xxxxxxxxxxxxxxxxxxx
Cc:
Subject: RE: [groovy-user] calling methods that take an array or list
of interfaces




Shouldn't it be:

criteria.setSiteUuids( wsites.toArray(new WSite[wsites.size()]) );

I.e. new Wsite not the interface.

Dion


-----Original Message-----
From: Randy Thornton [mailto:randy_thornton@xxxxxxxxxxxxxxxxxxxxx]
Sent: Thursday, October 14, 2004 3:36 PM
To: user@xxxxxxxxxxxxxxxxxxx
Subject: [groovy-user] calling methods that take an array or list of
interfaces

This is related to the email I sent a few days ago. I can't figure out
how
to pass arrays or list of interface pointers.

Here is the method prototype:
public void setSites(IWSite[] sites) {...}

and the class declaration of WSite and IWSite:

public class WSite implements IWSite {}

This is the line from the script where wsites is an ArrayList of IWSite
objects.

criteria.setSiteUuids( wsites.toArray(new IWSite[wsites.size()]) );

And finally the error that I have become so frustrated with.
No signature of method
com.perfretail.k2v1.wake.reports.WReportsCriteria.setSiteUuids() is
applicable for argument types: ([Lcom.perfretail.k2v1.wake.api.IWSite;)
values: [[com.perfretail.k2v1.wake.core.WSite@8f83a9[name=Store
100,uuid=afefe88416e94d9449186e9],
com.perfretail.k2v1.wake.core.WSite@cf590[name=Store
200,uuid=afefe88416e94fb44918796]]]
As you can see it is an array of WSite, but it can't resolve it to
IWSite.
The same behavior exists for methods that take in a List as an argument
as
my previous email.







<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise