Db.query方法

Db.query方法是范型方法,我调用这个方法的话,该用什么类型接收该方法的返回值呢?虽然query定义成了范型方法,但是他的返回类型不是List<Object>吗,范型不起作用吧?

因为有这么一句话,那范型有什么用啊?

Object[] temp = new Object[colAmount];

评论区

JFinal

2019-04-17 10:24

分两种情况:
1:select 后面只有一个字段,根据字段返回值选择泛型值
例如:
字段返回值是 String 类型,可以这么来用:
List<String> list = Db.query("select title from blog limit 1");

字段返回类型是 Integer 型,可以这么来用:
List<Integer> list = Db.query("select id from blog limit 1");

2:select 后面有多个字段,只能使用 List<Object[]>
List<Object[]> list = Db.query("select id, title, content from blog limit 1");

说白了,你的返回值变量要根据具体的返回值去变动,在开发的过程中试用一下就知道了

JFinal

2019-04-17 10:25

一般情况使用 Db.find 最好

jfinal初识

2019-04-17 10:32

@JFinal 了然,如果API中封装下,通过范型,把select的字段和Java对象的字段映射起来会更易用些,我自己处理下吧。

JFinal

2019-04-17 10:45

@jfinal初识 为此,刚刚补充了文档,新鲜出炉,值得仔细看一下:
https://www.jfinal.com/doc/5-5

JFinal

2019-04-17 10:46

@jfinal初识 这个问题,可以通过单步调试,看返回值的具体类型,然后再选择合适的接收变量的泛型参数即可

jfinal初识

2019-04-17 16:43

@JFinal 又完善了一下,非常完美!!!

热门反馈

扫码入社