<Sound Dev> <Beans Dev> RFR: 8155874: Fix java.desktop deprecation warnings about Class.newInstance

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Mon Nov 7 19:12:43 UTC 2016


Looks fine.

On 07.11.16 21:49, Phil Race wrote:
> bug: https://bugs.openjdk.java.net/browse/JDK-8155874
> Webrev: http://cr.openjdk.java.net/~prr/8155874/
>
> This hits all across the desktop module, hence the cross-post.
>
> The Class.newInstance() has been deprecated since it
> may throw checked exceptions that are not declared.
>
> Class.getConstructor().newInstance() was recommended as a
> replacement but it will return only public constructors.
>
> So if you have package access to a package private constructor it will
> fail where
> as the previous pattern succeeded
>
> So the recommendation now is to use
> Class.getDeclaredConstructor().newInstance()
> and this fix uses that except for some cases where we have a limited and
> known
> set of internal "service providers" which are known to use public
> classes and constructors.
>
> Also some exception catching has been cleaned up as appropriate for the
> new method call and taking advantage of the JDK 1.7
> ReflectiveOperationException
>
> -phil.
>


-- 
Best regards, Sergey.


More information about the sound-dev mailing list