Hi Victor,

... cut ...

Code doesn't match comment - unless I'm mistaken, checking instanceof Byte 
won't cover the other numeric types (or a custom subclass of Number).
Righ, it's the old comment, I left it in there for the review (the assumption of the comment didn't work).

+             if      (args[i] instanceof Byte)    argTypes[i] = byte.class;
+                    // 2005-06-08, rgf, *must* be given, or signatures not 
found!
+              else if (args[i] instanceof Short  ) argTypes[i] = short.class;
+              else if (args[i] instanceof Integer) argTypes[i] = int.class;
+              else if (args[i] instanceof Long)    argTypes[i] = long.class;
+
+             else if (args[i] instanceof Float)   argTypes[i] = float.class;
+             else if (args[i] instanceof Double ) argTypes[i] = double.class;
+           }
+            else if (args[i] instanceof Boolean)   argTypes[i] = boolean.class;
+            // ---rgf, handle also the case of "Character"
+            else if (args[i] instanceof Character) argTypes[i] = char.class;

OK - I can buy this - except: what about BigDecimal and BigInteger, and what's 
the default case (which would handle a custom subclass of Number)?
Well, the strategy here seems to be: if a method with the supplied signature is not found, then "unbox" the primitive datatypes and try whether a method signature exists for them. For that reason it would not be necessary to worry about BigDecimal et.al.: if a programmer uses them, he would be able to get the appropriate primitive datatype renderings off them, which then allows for seeking a method using the primitive datatype signatures in the above section.

+      catch (Exception e3)                   // 2003-02-23, --rgf, maybe an 
IllegalAccessException?

Just stylistic pedantry: why e3?
Well, probably was a little bit depressed while working on that part of the code...
;)

Seriously, no specific reason other than serving as an eye-catcher to point to an area where I changed something and wanted others to become aware of it (to double-check).

Otherwise, I'm happy.
Fine. Thank you very much for your efforts!

Regards,

---rony

Reply via email to