commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Juozas Baliuka" <bali...@centras.lt>
Subject Re: [lang] Reflection - how accurate
Date Sat, 12 Oct 2002 07:12:34 GMT
Hi,
It is possible using java.lang.reflect.Modifier,
see  Method[] Class.getDeclaredMethods() and Method[] getMethods() it is not
the same.
And it seems  "getMethods" has some bugs on sun's 1.3.



> OK, Its even worse, because there is no easy way to find out if a
> method/field can be called without actually calling it. What I mean is
that
> there is no method that says can I call this method/field without getting
an
> IllegalAccessException.
>
> (The method isAccessible() is badly named, and should be called
> isIgnoreScope().)
>
> This adds even more complexity to the code. I know about the MethodUtils
> from [beanutils], but has anyone else come up against these kinds of
issues
> with reflection.
>
> Stephen
>
> ----- Original Message -----
> From: "Stephen Colebourne" <scolebourne@btopenworld.com>
> To: "Jakarta Commons Developers List" <commons-dev@jakarta.apache.org>
> Sent: Friday, October 11, 2002 9:35 PM
> Subject: [lang] Reflection - how accurate
>
>
> > I've been coding up the new reflection handling code (low level) for
> [lang].
> > And I've discovered that the Sun implementation (1.3.1) is screwed.
> > Consider:
> >
> > Class A. Defines _public_ field named 'number' value 1
> > Class B. Subclass of A. Defines _private_ field named 'number' value 2
> > Interface I. Defines _public static final_ field named 'number' value 3
> > Class C. Subclass of B, implements I.
> >
> > What value does 'number' have if you reference it from C ???
> >
> > Testing shows it is 3, because the private field in B hides the public
> field
> > in A.
> >
> > However, Java reflection will give you the field on A if you request it
> > passing in C. In other words Java 1.3.1 Sun reflection is screwed. I've
> just
> > tested it on Sun's 1.4.0 however and it gives the correct answer.
> >
> > Now, I can work around this, doing lots of searches and the like, but it
> > will slow things down a lot.
> > - So how accurate do we need to be??
> > - Should I code the workaround just for 1.3 java??
> > - What about non-Sun implementations??
> > - What about 1.2??
> > - Do we care anyway, as its such a peculiar case??
> >
> > Stephen
> >
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:commons-dev-unsubscribe@jakarta.apache.org>
> > For additional commands, e-mail:
> <mailto:commons-dev-help@jakarta.apache.org>
> >
>
>
> --
> To unsubscribe, e-mail:
<mailto:commons-dev-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail:
<mailto:commons-dev-help@jakarta.apache.org>
>


--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message