Mo DeJong wrote: > There is no "compile time" in Tcl, it is all dynamic, ... Exactly my point. Consider these two code snippets, which I assume you agree are correct uses of newInstance(): B x = new C (); ReflectObject.newInstance (interp, B.class, x); C x = new C (); ReflectObject.newInstance (interp, C.class, x); The _exact same reference value_ is passed to newInstance() as its third argument, in each snippet. The only factor that determines the second argument is the type (not class) of x, which is a purely compile-time Java notion. It is surprising to me that this compile-time Java notion should find its way into the dynamic semantics of Tcl--but I accept that you probably have legitimate reasons for doing that. But--because each snippet is passing the same reference value to newInstance(), and because newInstance() has no way of knowing how x was actually declared in the Java program text, it still seems to me that either form could be used, AS LONG AS THE USAGE IS CONSISTENT, and TclBlend would be happy. In other words, if x is _always_ referred to as a C, and _never_ as a B, no harm should result. And the second form is equivalent to C x = new C (); ReflectObject.newInstance (interp, x.getClass (), x); ---------------------------------------------------------------- The TclJava mailing list is sponsored by Scriptics Corporation. To subscribe: send mail to [EMAIL PROTECTED] with the word SUBSCRIBE as the subject. To unsubscribe: send mail to [EMAIL PROTECTED] with the word UNSUBSCRIBE as the subject. To send to the list, send email to '[EMAIL PROTECTED]'. An archive is available at http://www.mail-archive.com/tcljava@scriptics.com