Доброго времени суток!
Не понимаю почему валидатор ругается на условие № 6: "Для каждой введенной строки (в том числе для некорректной) необходимо вызвать метод MovieFactory.getMovie()."
Данное условие у меня выполняется в цикле for. В чем ошибка?
package com.javarush.task.task14.task1414;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
MovieFactory
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String key;
ArrayList<String> keys = new ArrayList<>();
Movie movie;
while (true) {
key = reader.readLine();
if ("soapOpera".equals(key))
keys.add(key);
else if ("cartoon".equals(key))
keys.add(key);
else if ("thriller".equals(key))
keys.add(key);
else {
keys.add(key);
break;
}
}
for (int i = 0; i < keys.size()-1; i++) {
movie = MovieFactory.getMovie(keys.get(i));
System.out.println(movie.getClass().getSimpleName());
}
}
static class MovieFactory {
static Movie getMovie(String key) {
Movie movie = null;
if ("soapOpera".equals(key)) { movie = new SoapOpera(); }
if ("cartoon".equals(key)) { movie = new Cartoon(); }
if ("thriller".equals(key)) { movie = new Thriller(); }
return movie;
}
}
static abstract class Movie {
}
static class SoapOpera extends Movie {
}
static class Cartoon extends Movie {
}
static class Thriller extends Movie {
}
}