Задачу решил,но есть вопрос:
public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        while(true){
            String a = reader.readLine();
            if(a.equals(""))
                break;
            Cat cat = getCatByKey(a);
            System.out.println(cat);
        }
Метод getCatByKey у нас описан классе CatFactory, который находится внутри класса Solution. Вызывая метод getCatByKey в Solution прилетит ошибка "Cannot resolve method". Почему так происходит ? Разве CatFactory не является своего рода внутренним классом Solution ? Я обошел этот момент только костылем - import static com.javarush.task.task14.task1404.Solution.CatFactory.getCatByKey; т.е. импортнул метод в проект (сам в себя).