Не хочу пока смотреть решения других, может кто натолкнет на мысль, итак логика следующая:
1) Берем массив классов колекш
2) Смотрим чтобы она имплементировались от Лист
3) Находим метод get
4) создаем объект класса
5) вызываем у него метод get
6) отлавливаем нужное исключение
package com.javarush.task.task36.task3602;
import java.awt.*;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.*;
import java.util.List;
/*
Найти класс по описанию Ӏ Java Collections: 6 уровень, 6 лекция
*/
public class Solution {
public static void main(String[] args) throws InstantiationException, IllegalAccessException {
System.out.println(getExpectedClass());
}
public static Class getExpectedClass() throws IllegalAccessException, InstantiationException {
Class<?>[] clazz = Collections.class.getDeclaredClasses();
for (Class elem:clazz) {
if (elem.getName().contains("List") && elem.getModifiers() == 10) {
// System.out.println(elem.getName() + " " + elem.getModifiers());
try {
Method method = elem.getDeclaredMethod("get");
method.setAccessible(true);
List list = (List) elem.newInstance();
method.invoke(list,1);
} catch (IllegalAccessException e) {
} catch (IndexOutOfBoundsException e) {
return elem;
} catch (NoSuchMethodException e) {
} catch (InvocationTargetException e) {
}
}
}
return null;
}
}