Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@apache.org Received: (qmail 77429 invoked from network); 11 Oct 2002 20:36:54 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 11 Oct 2002 20:36:54 -0000 Received: (qmail 5462 invoked by uid 97); 11 Oct 2002 20:37:19 -0000 Delivered-To: qmlist-jakarta-archive-commons-dev@jakarta.apache.org Received: (qmail 5063 invoked by uid 97); 11 Oct 2002 20:37:13 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 4893 invoked by uid 98); 11 Oct 2002 20:37:12 -0000 X-Antivirus: nagoya (v4218 created Aug 14 2002) Message-ID: <005701c27165$d5406d00$d03529d9@oemcomputer> From: "Stephen Colebourne" To: "Jakarta Commons Developers List" Subject: [lang] Reflection - how accurate Date: Fri, 11 Oct 2002 21:35:54 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N 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: For additional commands, e-mail: