On Mon, 18 Mar 2002, James Strachan wrote:
> ----- Original Message -----
> From: "Morgan Delagrange" <[EMAIL PROTECTED]>
> > > yeah, I think I did mean ArrayIterator. The simple way of doing this
> > > would be to use Array.getLength(array). That does the checking for you.
> > > It also lets you calculate the length once (in the constructor) so that
> > > multiple calls to hasNext does not require the overhead of
> > > Array.getLength(...).
> >
> > OK, sounds reasonable. FWIW, it may make sense to optimize this class
> > someday, so we don't perform unnecessary reflection on Object[] arrays.
>
> Though I didn't think you could cast all arrays to Object[] so I'd prefer to
> keep the reflection based implementation - I've certainly written code
> before that needs it. e.g.
>
> int[] foo = {1,2,3};
> Object[] bar = (Object[]) foo;
>
> The above is invalid.
I think what Morgan was referring to was possibly optimizing when this
*is* possible. E.g. have a second constructor that takes an Object[].
That way, if the object past in *is* castable as Object[], then a
non-reflection based impl could be used. I'm not sure how the two impls
could be mixed though, so I'm not sure how much of an optimization it
really is.
I think we both recognize that taking an int[] should be allowed.
regards,
michael
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>