EZVCE, elif может быть только частью условного выражения, перед ним может быть только тело оператора if или другого elif. У вас перед elif блок else, который завершает условное выражение.
maks_mcdr, курсы помогут относительно быстро решить проблему. Но можно и без них: сначала начинаешь читать английские тексты с переводчиком, пока потребность в нём не пропадёт, потом смотришь видео с субтитрами, пока потребность в них не пропадёт, и т.д.
Павел Соколов, обобщённые типы существуют только на этапе компиляции и являются инструкциями именно для компилятора, а не рантайма. Если в рантайме вам прилетают откуда-то Object, то придётся оперировать рефлексией. Но это тоже зачастую признак говнокода. Если вам доступен код, вызывающий setValue, то надо постараться переписать его так, чтобы Object'ами он не оперировал.
Никита Савченко, элементарно, надо написать код, который принимает ссылку, скачивает по ней страницу, заменяет все ссылки в странице на ссылки на себя, отдаёт обработанную страницу клиенту.
Василий Банников, сходу не вспомню, но между Java 8 и Java 18 несколько раз менялся формат class-файлов, добавлялись новые байткоды и появлялись новые функции виртуальной машины, типа Memory API. Чисто с инженерной точки зрения мешает то, что какой-нибудь там паттерн-матчинг выполняется в рантайме, соответственно виртуальная машина должна уметь его выполнять.