Почему мое решение проходит все условия кроме последнего? Там ведь написано, Для всех введенных корректных строк необходимо вывести на экран простые имена(movie.getClass().getSimpleName()) типов объектов возвращаемых методом MovieFactory.getMovie.
Для всех корректных у меня возвращает простые имена. А для некорректной movie - null. как в предыдущем пункте проверки. Надоело уже с бубном прыгать вокруг нее.
package com.javarush.task.task14.task1414;
import java.io.*;
/*
MovieFactory
*/
public class Solution {
public static void main(String[] args) throws Exception {
//ввести с консоли несколько ключей (строк), пункт 7
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String key;
while (true){
//try{
key = r.readLine();
if (!(key.equals("soapOpera")||key.equals("cartoon")||key.equals("thriller"))){
System.out.println(MovieFactory.getMovie(key));
break;}
System.out.println(MovieFactory.getMovie(key).getClass().getSimpleName());}
//catch (NullPointerException e){
//System.out.println(MovieFactory.getMovie(key));
//break;}
}
static class MovieFactory {
static Movie getMovie(String key) {
Movie movie = null;
//создание объекта SoapOpera (мыльная опера) для ключа "soapOpera"
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{
}
}