RFR: (jaxp) 8005473 : Warnings compiling jaxp

Chris Hegarty chris.hegarty at oracle.com
Thu Dec 27 23:48:09 UTC 2012

On 27 Dec 2012, at 22:26, Remi Forax <forax at univ-mlv.fr> wrote:

> On 12/27/2012 10:41 PM, Chris Hegarty wrote:
>>>> Method method = clazz.getMethod(DOM_LEVEL3_METHOD);
>>>> is equivalent to
>>>> Method method = clazz.getMethod(DOM_LEVEL3_METHOD, new Class<?>[0]);
>>>> so you allocate an empty array each time you call getMethod.
>>>> A better patch is to cast null to Class<?>[] (or Object[] for invoke)
>>>> Method method = clazz.getMethod(DOM_LEVEL3_METHOD, (Class<?>[])null);
>> Is this something that the compiler could do? Or is this "inefficiency" baked into spec, or serve another purpose?
> The compiler has to create an empty array if there is not enough parameter from the spec (JLS7, but Class.getMethod() or Method.invoke() are special because they specified that null is a valid argument equivalent to an empty array.

Ok, thanks Remi.


>> -Chris.
> Rémi

More information about the core-libs-dev mailing list