#java #migration #java-11 #java-6
#java #миграция #java-11 #java-6
Вопрос:
У меня проблема с миграцией старого кода, который использовался sun.net.*
, и sun.net.www.protocol.file.FileURLConnection
Ant не может создать проект на jdk 11, потому FileURLConnection
что он из версии 8/9 внутреннего класса базового пакета. FileURLCOnnection использовался для проверки экземпляра возвращаемого класса, поэтому мне понадобится хорошая идея, как я могу заменить этот фрагмент без разрушения логики (фрагмент ниже).
connection instanceof FileURLConnection
for (URL url = null; resources.hasMoreElements()
amp;amp; ((url = resources.nextElement()) != null); ) {
try {
connection = url.openConnection();
if (connection instanceof JarURLConnection) {
checkJarFile((JarURLConnection) connection, pckgname,
classes);
} else if (connection instanceof FileURLConnection) {
try {
checkDirectory(
new File(URLDecoder.decode(url.getPath(),
"UTF-8")), pckgname, classes);
} catch (final UnsupportedEncodingException ex) {
throw new ClassNotFoundException(
pckgname
" does not appear to be a valid package (Unsupported encoding)",
ex);
}
} else
throw new ClassNotFoundException(pckgname " ("
url.getPath()
") does not appear to be a valid package");
} catch (final IOException ioex) {
throw new ClassNotFoundException(
"IOException was thrown when trying to get all resources for "
pckgname, ioex);
}
}
Ответ №1:
Вы должны быть в состоянии заменить:
connection instanceof FileURLConnection
Автор::
"file".equals(url.getProtocol())
Комментарии:
1. Спасибо! Ты мой герой: D