Как не ловить NPE если нам по заданию нужно вызывать getMovies() для некорректного ключа?
package com.javarush.task.task14.task1414;
import java.io.*;
/*
MovieFactory
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Movie movie = null;
while(true){
String s = reader.readLine();
movie = MovieFactory.getMovie(s);
if ( movie == null) {
break;
} else {
System.out.println(movie.getClass().getSimpleName());
}
}
}
static class MovieFactory {
static Movie getMovie(String key) {
Movie movie = null;
if ("soapOpera".equals(key)) {
movie = new SoapOpera();
} else if (key.equals("cartoon")){
movie = new Cartoon();
} else {
movie = new Thriller();
}
return movie;
}
}
static abstract class Movie {
}
static class SoapOpera extends Movie {
}
static class Cartoon extends Movie {
}
static class Thriller extends Movie{
}
}