大家好,请看演示代码及问题:
先定义一个类:
public class Arr<S> {
private S entity;
private IService<S> service;
public Arr(S entity,IService<S> service){
this.entity = entity;
this.service = service;
}
}
然后创建一个List,来存放上面类的多个实例:
ArrayList<Arr<?>> list = new ArrayList<>();
现在开始创建实例,并添加到list中:
@Autowired
private IUserService userService;
@Autowired
private IDogService dogService;
@Autowired
private ICarService carService;
Arr<User> a = new Arr<>(new User(),userService);
Arr<Dog> b = new Arr<>(new Dog(),dogService);
Arr<Car> c = new Arr<>(new Car(),carService);
list.add(a);
list.add(b);
list.add(c);
最后,也是问题所在,我开始遍历list:
for (Arr<?> item :list) {
//我的问题就是:怎么将注释部分的代码改成泛型形式的代码。
//LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
//wrapper.eq(User::getId,"1");
//User user = item.service.getOne(wrapper);
//System.out.println(user);
}
我想在上面遍历代码中,每次取出item的entity属性的类型,然后通过该类型创建Mybatis plus的
LambdaQueryWrapper,但是我怎么能获取到这个属性对应的类型呢?也就是上面注释的User,只不过每次遍历分别是Uesr、Dog、Car。谢谢!~
使用如下方法: