Похоже, что Java пытается преобразовать пустую строку в число. У Вас есть пустая строка в конце серии чисел?
Вы могли, вероятно, зафиксировать код как это
String s = in.readLine();
int i = 0;
while (s != null) {
// Skip empty lines.
s = s.trim();
if (s.length() == 0) {
continue;
}
tall[i] = Integer.parseInt(s); // This is line 19.
System.out.println(tall[i]);
s = in.readLine();
i++;
}
in.close();
Для реализации по умолчанию нет шаблонов проектирования.
Я обычно добавляю префикс DoNothing
к имени класса. В зависимости от цели я также использую Base
или Default
(последний широко используется). Вероятно, MouseAdapter
следует называть DefaultMouseListener
.
Если вам интересно, вы можете систематически заглушить интерфейс с помощью простого DynamicProxy , вы должны вернуть только «хорошее» значение по умолчанию (ноль для объекта, 0 для числового и т. Д.).
Кстати, это очень хороший вопрос.
РЕДАКТИРОВАТЬ
Кроме того, это не заглушка или макет : может быть, его можно спутать с заглушкой, но намерение другое.
Я видел, как этот дизайн использовался весной, когда у них был класс с именем FlowExecutionListenerAdapter , который избавляет вас от реализации всех операций FlowExecutionListener.
Однако это звучит как Нулевой шаблон объекта тоже. Однако я считаю, что в мире адаптеров он лучше подходит просто потому, что он меняет поведение интерфейса, позволяя вам реализовать только тот бит, который вам нужен ... но это сложный вопрос.
Я уверен, что этот вопрос был задан раньше?
Это звучит похоже нет? Возможно, стоит прочитать.
Он также используется в Swing (WindowAdapter, который реализует WindowListener). Это всего лишь удобный адаптер, вам нужно определить только 1-2 метода таким образом, чтобы получить полезный слушатель окон. Это действительно образец шаблона адаптера, который также показывает мощь абстрактных классов. Это даже пример, иллюстрирующий, почему иногда бывает полезно наследование множественных реализаций.
Что касается обычных шаблонов проектирования, в методе Temlate вы можете определять операции перехвата, которые могут быть переопределены (в отличие от абстрактных методов, которые должны быть), но поведение по умолчанию (обычно NO-OP) тоже имеет значение.
Мне это кажется наиболее близким к шаблону Особый случай или Нулевой объект .
В ваших обновлениях предлагается нечто похожее на Шаблонный метод ожидают, что у вас нет единственного метода, который вызывает каждый метод шаблона, например
public void doEverything()
{
doThis();
doThat();
done();
}
Вы спрашиваете о шаблоне нулевого объекта ?
В дополнение к вашему изменению объект MyClass
является не чем иным, как реализацией по умолчанию. Я не думаю, что есть какой-то конкретный шаблон дизайна, который это описывает.