Ребят, помогите разобраться. Вроде работает, но не принимает.
Неужели нельзя так решить, а только с записыванием в список?
package com.javarush.task.task14.task1414;
/*
MovieFactory
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class Solution {
public static void main(String[] args) throws Exception {
//ввести с консоли несколько ключей (строк), пункт 7
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
//8 Создать переменную movie класса Movie и для каждой введенной строки(ключа):
//8.1 получить объект используя MovieFactory.getMovie и присвоить его переменной movie
//8.2 вывести на экран movie.getClass().getSimpleName()
Map <String, MovieFactory.Movie> mapMovie = new HashMap <>();
mapMovie.put("soapOpera", MovieFactory.getMovie("soapOpera"));
mapMovie.put("cartoon", MovieFactory.getMovie("cartoon"));
mapMovie.put("thriller", MovieFactory.getMovie("thriller"));
while (true) {
String readKey = reader.readLine();
if (mapMovie.containsKey(readKey)) {
MovieFactory.Movie movie = mapMovie.get(readKey);
System.out.println(movie.getClass().getSimpleName());
}
else {
break;
}
}
// reader.close();
}
static class MovieFactory {
static Movie getMovie(String key) {
Movie movie = null;
//создание объекта SoapOpera (мыльная опера) для ключа "soapOpera"
if ("soapOpera".equals(key)) {
movie = new SoapOpera();
}
//напишите тут ваш код, пункты 5,6
else if ("cartoon".equals(key)) {
movie = new Cartoon();
} else if ("thriller".equals(key)) {
movie = new Thriller();
}
return movie;
}
static abstract class Movie {
}
static class SoapOpera extends Movie {
}
//Напишите тут ваши классы, пункт 3
static class Cartoon extends Movie {
}
static class Thriller extends Movie {
}
}
}