将接口列表转换为具体类型列表

VWe*_*ber 1 java generics

我有一个从db获取一些对象的方法:

public <T extends Persistable> List<T> getAllEntitiesEager(
        Class clazz, String sortField, SortOrder sortOrder,
        Map<String, Object> filters, boolean invalidate);
Run Code Online (Sandbox Code Playgroud)

此方法返回类型中的对象列表clazz.返回的所有对象都实现了接口Persistable.现在我需要一个具体类型列表.这甚至可能吗?

例:

Class UserEntity实现了Persistable,我想做类似的事情:

List<UserEntity> userList = (List<UserEntity) 
        someObject.getAllEntitiesEager(UserEntity.class,...)
Run Code Online (Sandbox Code Playgroud)

Roh*_*ain 6

为什么不只是改变的类型clazzClass<T>

public <T extends Persistable> List<T> getAllEntitiesEager(Class<T> clazz, 
                            String sortField, SortOrder sortOrder, 
                            Map<String, Object> filters, boolean invalidate);
Run Code Online (Sandbox Code Playgroud)

这样,返回的列表将与传递clazz类型的类型相同.