Labmda表达式 Non-static method cannot be referenced from a static context 解决办法

场景描述:使用lambda表达式,提示 Non-static method cannot be referenced from a static context 。(使用mybatis-plus,mapper中的selectList(),做模糊查询,警告编译异常。)

Non-static method cannot be referenced from a static context
非静态方法不能从静态上下文中引用

Labmda表达式 Non-static method cannot be referenced from a static context 解决办法_第1张图片

List<TradeChild> infoList = tradeChildMapper.selectList(new LambdaQueryWrapper<>().like(StringUtils.isNotEmpty(tradeName),TradeChild::getTradeChildName,tradeName));

解决方案其实很简单,如果我的写法是以下则不会出现问题。
简单来说就是泛型没有指定类型。
Labmda表达式 Non-static method cannot be referenced from a static context 解决办法_第2张图片

LambdaQueryWrapper<TradeChild> query =new LambdaQueryWrapper<>();
query.like(StringUtils.isNotEmpty(tradeName),TradeChild::getTradeChildName,tradeName)

改成以下即可,遇到相似问题的,可以看一下自己的代码里边是不是没有指定泛型类型。
Labmda表达式 Non-static method cannot be referenced from a static context 解决办法_第3张图片

你可能感兴趣的:(Java基础,Error集结,lambda,mybatis,java,mysql)