Java映射类和列表到泛型类型

3

我正在尝试创建一个接受类作为参数并执行某些操作并返回相同类的列表的方法。

我想使用泛型,并编写了以下代码。

问题: 我应该如何将提供的类映射到BeanListProcessor类型和列表?

注意:这段代码不正确,会产生语法错误。这只是一种模板来解释我的要求。

public static List<?> process(Class<?> bean) {

    List<?> rows = new ArrayList<>();

    BeanListProcessor<bean> processor = new BeanListProcessor<bean>(bean.getClass());

    ....
    return rows;
}

你想对那个处理器做些什么吗?因为现在,你只能 return new ArrayList<?>(); - daniu
是的,处理器会执行一些活动并返回一些值。根据这些值应该返回相应的结果。 - Purus
那么它本质上就是一个 Supplier<List<?>> 吗? - daniu
1
这里是库的作者。请查看CsvRoutines类,以便将内容读入对象列表而无需大量样板代码。希望能有所帮助! - Jeronimo Backes
@JeronimoBackes:使用CsvRoutines.parseAll()很好用。但我觉得我们仍然需要下面标记为答案的代码。使用CsvRoutines,我无法获得标题和其他信息,而我使用解析器可以。 - Purus
显示剩余2条评论
1个回答

5

如果您想在返回的列表中返回作为参数提供的类型的实例,您可能希望在方法级别上定义一个通用类型。

public static <T> List<T> process(Class<T> beanClass) {
    List<T> rows = new ArrayList<>();
    BeanListProcessor<T> processor = new BeanListProcessor<T>(beanClass);
    ...
    return rows;
}

bean.getClass() 抛出错误,但仅传递 bean 就可以。 - Purus
1
啊,对了,它期望的是beanClass的类 - 对此很抱歉! - Alexandre Dupriez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接