|
Re: calling methods that take an array or list of interfaces: msg#00110lang.groovy.user
Here is an example of a method accepting an interface, and the groovy script which uses the method successfully (even with beta 7! ;-). Here is the groovy script (swap Vector for List,ArrayList and also works grand): ----------------- java.util.Vector bars = new java.util.Vector(); for(i in 1..10) { bars.add(new Bar()); } foo = new Foo(); foo.doSomething(bars.toArray(new IBar[0])); ----------------- Here are the corresponding java classes: ----------------- public interface IBar{ public void doit(); } ----------------- public class Bar implements IBar, java.io.Serializable { public void doit() { System.out.println("this is Bar.doit()"); } } ----------------- public class Foo{ public void doSomething(IBar[] bars){ for(int i=0;i<bars.length;i++){ bars[i].doit(); } } } ----------------- Best regards, Robert. > 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. > > > > > -- Robert Fuller rfuller-uSSxwurkIxcAvxtiuMwx3w@xxxxxxxxxxxxxxxx | +353.86.0507760 | http://www.aplpi.com Applepie Solutions Ltd., Galway, Ireland.
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Extension as first class construct, Michael Latta |
|---|---|
| Next by Date: | Variable defined, juhani |
| Previous by Thread: | RE: calling methods that take an array or list of interfaces, Dion Almaer |
| Next by Thread: | RE: calling methods that take an array or list of interfaces, Randy Thornton |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |