Бывает такое, что работаешь над задачей и не видешь очевидного, кто подскажет?
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 temp;
do {
temp = reader.readLine();
Movie movie = MovieFactory.getMovie(temp);
if (movie != null) System.out.println(movie.getClass().getSimpleName());
else System.out.println(NullPointerException.class.getSimpleName());
} while (temp.equals("soapOpera") || temp.equals("cartoon") || temp.equals("thriller"));
}
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 {
}
}