MyBatis中是谁实现了List接口,提问

List有三个实现类
一般都要写List XX=new ArraryList()
这里用List a=mapper.selectMore2("花")也可以,是什么原因,这个List接口被谁实现了

img

img

img

img

img

mapper.selectMore2()的返回类型是List类型。


List a = new ArrayList()是多余的语句,
可以改为
List a = mapper.selectMore2("花");

img

这属于底层实现,一般你能看到defaultSqlSesaion这一层,都算你了解了具体实现了

1、List a=mapper.selectMore2("花"),你的问题提的没错,接口是不能实现对象的,只是定义方法。
2、那mybatis是怎么调用他的呢?这得看源码。其实MyBatis为每个mapper接口生成了一个代理类,由代理类去执行相应的方法。

img

img

img