ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Loughran <ste...@apache.org>
Subject Re: java.lang.Iterable
Date Thu, 21 Apr 2005 14:13:16 GMT
Steve Loughran wrote:
> Peter Reilly wrote:
> 
>> Jan.Materne@rzf.fin-nrw.de wrote:
>>
>>> I had a project where a code generator inserts one interface 
>>> statement - and that
>>> what missing. So I created just an empty interface to make the 
>>> compiler happy. Couldnt
>>> we "backport" the Iterable interface?
>>>
>>> I played a little with these...
>>> - build.xml
>>> - src\oata\Iterable.java
>>> - src\oata\MyClass.java
>>>
>>>
>> Nice, but not useful in ant core (kernel) until we move to using
>> java 1.5+ as we would not be able to use java 1.5+ to create
>> an ant distribution that can be used for java 1.4 and previous.
>>


> 
> How about (in a java15 package), we have a class that uses reflection to 
> look for the iterator() operator
> 
> 
> Class IterateOver implements Iterable {
> 
> Object instance;
> 
> IterateOver(instance) {this.instance=instance}
> 
> public Iterator iterator() {
>     Class clazz=instance.getClass();
>     Method method=clazz.getMethod("iterator");
>     return method.invoke(instance);
> }
> 
> }
> 
> you could then do (for e:new IterateOver(something));
> 
> not ideal, I admit. Oh, there is all that generic typing stuff too. sigh.
> 


Just checked the language spec

1. you can have any expression that returns an iterable. So a static method

  makeIterator(Object instance) {return new IterateOver(instance);}

  would work too

for(type t:makeIterator(anInstance)) would work

The problem is that typing is not going to work right, you need a 
language which is either fully untyped (python, &c), or one with like 
standard ML, in which types are primary objects you can work with.

2. you can iterate over arrays. So if we have operators that return 
typed arrays, you can iterate over them

-steve



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message