Код: Выделить всё
public class Test {
public static void main(String[] args) {
System.out.println(Integer.class.getResourceAsStream("Test.class"));
}
}
Однако в документации для Class.getResourceAsStream (для Java 21) четко указано
Если этот объект Class был загружен загрузчиком классов начальной загрузки, метод делегирует ClassLoader.getSystemResourceAsStream(java.lang.String).
Насколько я понимаю, системный загрузчик будет загружать классы в текущем каталоге. И действительно, вызов ClassLoader.getSystemResourceAsStream("Test.class") правильно возвращает поток. Так почему же вызов Integer.class.getResourceAsStream("Test.class") не работает?
В Java 8, но не в Java 21, вызов int.class.getResourceAsStream("Test.class") фактически возвращает поток. Однако Integer.class.getResourceAsStream("Test.class") по-прежнему возвращает значение null.
Подробнее здесь: https://stackoverflow.com/questions/797 ... g-resource
Мобильная версия