Мне дали следующий код и попросили написать класс Solution, выходящий из TestList.Я написал для него конструктор (который только что называется super) и метод printSecond2 (), вызванный в последней строке кода ниже.Все остальные методы наследуются.Вот код:
public class Test3A {
public static void main(String[] args) {
TestList tl = new Solution();
tl.loadList();
((Solution) (tl)).printSecond2();//prints every second element
}
}
Однако, черт возьми, никогда ничего не печаталось, поэтому я пошел в класс TestList (который был предоставлен) и поместил операторы println после каждой отдельной строки метода loadList ():
public void loadList ()
{
if (input.hasNextInt ())//input is a Scanner object
{
int number = input.nextInt ();
loadList ();
add (number);
}
}
Я обнаружил, что могу продолжать добавлять пробельные символы, символы новой строки и целые числа бесконечно, и что метод add (number) наконец-то вызывается только тогда, когда я ввожу символ.Так что, если я этого не сделаю, это просто зависает в ожидании большего ввода вместо того, чтобы двигаться дальше.
Я смущен этим, поскольку предоставленный пример ввода / вывода:
пример ввода
1 2 3 4 5
пример вывода
2 4
Таким образом, автоматический маркер не вводит никаких символов.
Я попытался переопределить метод в Solution (мыне может касаться других классов) и:
- ), изменяя if на while
- ), добавляя блок else
- ), добавляя else if (! input).hasNextInt ())
Ничто из этого ничего не изменило.Я понятия не имею, как программа должна двигаться дальше и доходить до printSecond2()
.
Есть мысли?Я действительно хотел бы пройти мой следующий тест на практике: D