commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephen Colebourne" <>
Subject Re: [lang] Reflection - how accurate
Date Fri, 11 Oct 2002 22:28:06 GMT
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

(The method isAccessible() is badly named, and should be called

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.


----- Original Message -----
From: "Stephen Colebourne" <>
To: "Jakarta Commons Developers List" <>
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
> 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
> 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
> 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:
> For additional commands, e-mail:

To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

View raw message