как избежать downCasting (мне нужно уменьшить список <Object>до списка <classA>) - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь написать универсальный метод, который принимает любой тип в Список объектов, а затем проверяет тип и значение downcast согласно типу:

public Response generate(List<Object> objects){

    if(objects instanceof List<ClassA>){
        /*List<ClassA> classA =(List<ClassA>) (Object) objects;
        System.out.println(classA.lastIndexOf(classA));
        System.out.println("after downcasting");
*/      
        /*List<ClassA> customer = (List<ClassA>) objects.stream()
                .filter(ClassA.class::isInstance)
                .map(ClassA.class::cast)
                .collect(Collectors.toList());*/
        List<ClassA> classA=(List<ClassA>)(Object)objects;
        addDataToExcel(classA);

    }
    else if(objects instanceof ClassB){
        ClassB classb=(ClassB) objects;
    }
    else if(objects instanceof ClassC){
        ClassC classc=(ClassC) objects;
    }

    return response;

}
...