<Swing Dev> RFR: 8155874: Fix java.desktop deprecation warnings about Class.newInstance
Phil Race
philip.race at oracle.com
Mon Nov 7 18:49:28 UTC 2016
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20161107/e74f4585/attachment.html>
More information about the swing-dev
mailing list