Что не так? Не проходит Для каждой введенной строки (в том числе для некорректной) необходимо вызвать метод MovieFactory.getMovie.
Хотя все работает в идеа, выводит и выходит при некорректной.
Добавление вывода в цикл с break не меняет.
package com.javarush.task.task14.task1414;
/*
MovieFactory
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String key = null;
while (true) {
key = reader.readLine();
String mov = key;
if (!(key.equals("cartoon")) && !(key.equals("thriller")) && !(key.equals("soapOpera"))){
if(MovieFactory.getMovie(mov) != null)
System.out.println(MovieFactory.getMovie(mov).getClass().getSimpleName());
break ;
}
if(MovieFactory.getMovie(mov) != null)
System.out.println(MovieFactory.getMovie(mov).getClass().getSimpleName());
}
}
static class MovieFactory {
static Movie getMovie(String key) {
Movie movie = null;
//создание объекта SoapOpera (мыльная опера) для ключа "soapOpera"
if ("soapOpera".equals(key)) {
movie = new SoapOpera();
}
else if("cartoon".equals(key))
movie = new Cartoon();
else if("thriller".equals(key))
movie = new Thriller();
//напишите тут ваш код, пункты 5,6
return movie;
}
}
static abstract class Movie {
}
static class SoapOpera extends Movie {
}
static class Cartoon extends Movie{}
static class Thriller extends Movie{}
}