特殊的方法引用

在java中,使用方法引用时,引用的方法和需要实现的方法参数不一致?!

在我学习mybatis-plus时,多次运用lambda表达式,其中不免使用到方法引用!

  • 其中有种特殊方法引用我就很是不解,就是基础知识不够牢靠导致,我也亡羊补牢立即回去取经,特此记随写一篇!

示例:

 @GetMapping("test")
    public Result<?> test(){
        log.info("test");
        LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<>();
        userMapper.selectList(queryWrapper.eq(UserEntity::getId, "1"));
        return Result.success("test");
    }

以上代码用到了UserEntity::getId这个方法引用,但是这个方法引用和eq方法的参数不一致!

img

其实按我之前逻辑这里应该是这样写的

img
其中还有这样也行
img

后来在我往前取经后才知道,还有一个特殊的方法引用,就是只能作用于方法体仅有一个参数时的,这时我们可以使用特殊的方法引用,但是这个引用的方法也有局限性,就是只能是该参数自带的方法!

总结一句话:想用方法引用就得按规矩来,形参和返回值都得备上,不想守规矩就自个带(也就是只能用原本参数内的方法)!

posted @ 2024-01-31 21:35  Cold的窝  阅读(29)  评论(0)    收藏  举报