gpt4 book ai didi

java - 抽象返回对象列表的方法

转载 作者:行者123 更新时间:2023-12-01 21:46:03 27 4
gpt4 key购买 nike

我正在开发一个报告模块。每个报告至少运行一个以上唯一的数据库查询来收集报告数据。

尽管报告查询是唯一的,但调用它们的方法是相同的。

我试图抽象返回列表的方法,以便我可以通过通用方法调用我的独特查询,而不是为我尝试获取结果的每个对象使用单独的方法。

该方法看起来像这样:

public List<?> getQueryResults(EntityManager em, String query, 
List<String> parameters, Class clazz) {
TypedQuery<?> query = em.createQuery(query, clazz);

// set parameters here...

List<?> results = query.getResultList();

return results;
}

对于所有查询,上述流程几乎都是重复的。必须设置的参数通常是三种不同的配置,因此我可以单独处理。

我想弄清楚的是如何传递给该方法或以某种方式派生我需要用于 TypedQuery<?> 的类和List<?> .

我希望我能做到这一点TypedQuery<clazz>但这不起作用。我应该使用反射并从 clazz 派生它吗?争论?

最佳答案

如果将泛型类型放在clazz上参数,您可以在返回值中使用它:

public <T> List<T> getQueryResults(EntityManager em, String query, 
List<String> parameters, Class<T> clazz) {
TypedQuery<T> query = em.createQuery(query, clazz);

// set parameters here...

List<T> results = query.getResultList();

return results;
}

(无论如何,你不应该在代码中使用原始类型 - 你至少应该有 Class<?>)

关于java - 抽象返回对象列表的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35999263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com