У меня есть следующий код, чтобы восстановить значения по умолчанию URLStreamHandlers
для HTTP и HTTPS, который работает в Java 8, доступ к статическому пакету области действие методы URL.getURLStreamHandler()
:Можно ли получить доступ к методам с охватом пакетов путем отражения в Java 9 с помощью Jigsaw?
private URLStreamHandler getURLStreamHandler(String protocol) {
try {
Method method = URL.class.getDeclaredMethod("getURLStreamHandler", String.class);
method.setAccessible(true);
return (URLStreamHandler) method.invoke(null, protocol);
} catch (Exception e) {
logger.warning("could not access URL.getUrlStreamHandler");
return null;
}
}
Будет ли это все еще будет возможно в Java 9 с jigsaw или будет модифицирующим видимость таким образом запрещена?
Возможность доступа к ним через переопределение доступа может существовать, но поскольку частные методы пакета не являются частью официального API, нет никакой гарантии, что метод будет существовать вообще ... – Holger