После этой строки:
qty = scan.nextInt();
Всегда добавляйте еще одну строку для очистки сканера:
scan.nextLine();
Кроме того, используйте
sc.nextLine();
вместо
sc.next();
К сожалению, нет. Разрушающий синтаксис не поддерживает указание аннотаций типов. По этой теме есть выпуск , но он открыт и не особенно активен.