文章目录

  • 一、报错信息
  • 二、解决方案

一、报错信息


使用 MetaClass 为类注入方法时 , 如果注入的方法与类中原有的方法有冲突 ,

class Student {def name;def hello() {println "Hello " + name}
}// 向 Student 类注入 hello 方法
Student.metaClass.hello << {println delegateprintln "Hello ${delegate.name}"
}

执行上述方法 , 会有如下报错 ;

报错信息 :

Caught: groovy.lang.GroovyRuntimeException: Cannot add new method [hello] for arguments [[]]. It already exists!
groovy.lang.GroovyRuntimeException: Cannot add new method [hello] for arguments [[]]. It already exists!at Groovy.run(Groovy.groovy:11)

二、解决方案


如果使用 Category 分类的方式注入方法 , 注入的方法可以与类中原来的方法相同 , 参考 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 @Category 注解进行方法注入 | 分类注入方法查找优先级 ) 博客 ;

使用 MetaClass 的方式注入方法 , 注入的方法不可与原来的方法冲突 , 否则就会报上述错误 ; 参考 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 使用 MetaClass 进行方法注入普通方法 ) 博客 ;

【错误记录】Groovy 注入方法报错 ( Cannot add new method [hello] for arguments [[]]. It already exists )相关推荐

  1. Python调用seek(pos,mode)方法报错Can‘t do nonzero cur-relative seeks

    在Python中IO操作调用seek(pos,mode)方法时,出现异常错误:OSError:Can't do nonzero cur-relative seeks其示例代码如下: from io i ...

  2. 基于adversarial-robustness-toolbox(ART)包进行AI对抗攻击ZOO攻击方法报错

    基于adversarial-robustness-toolbox(ART)包进行AI对抗攻击ZOO攻击方法报错 环境 问题分析 问题解决 ZooAttack类使用扩展 环境 ART版本:1.14.0 ...

  3. 使用mybatisplus的insert方法报错:org.apache.ibatis.reflection.ReflectionException: Could not set property

    使用mybatisplus的insert方法报错:org.apache.ibatis.reflection.ReflectionException: Could not set property 'i ...

  4. java 实现接口后重写方法报错

    java 实现接口后重写方法报错 java 实现接口后重写方法报错 The method contextDestroyed(ServletContextEvent) of type InitListe ...

  5. 【错误记录】VMware 虚拟机报错 ( 向 VMWare 虚拟机中的 Ubuntu 系统拷贝文件时磁盘空间不足 ② | 删除交换空间 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 [错误记录]VMware 虚拟机报错 ( 向 VMWare 虚拟机中的 Ubuntu 系统拷贝文件时磁盘空间不足 ) 博客中 , 给出了解决方案 ...

  6. python3中input()方法报错traceback变量未定义的解决方法

    python3中input()方法报错traceback变量未定义的解决方法 参考文章: (1)python3中input()方法报错traceback变量未定义的解决方法 (2)https://ww ...

  7. torchtext Filed 方法报错解决办法

    torchtext Filed 方法报错解决办法 问题1 拿到的源代码是这样的 报错: AttributeError: module 'torchtext.data' has no attribute ...

  8. uEditor setContent方法报错Uncaught TypeError: Cannot read property ‘innerHTML‘ of undefined

    uEditor setContent方法报错Uncaught TypeError: Cannot read property 'innerHTML' of undefined 报错信息 解决方法 报错 ...

  9. 快速解决Android studio native 方法报错

    反编译一个游戏项目,发现native方法报错.如图: 项目是通过加载动态链接库so,没有jni的源码,导致native方法有红色波浪线,我们可以关闭android studio的jni支持. 点击An ...

最新文章

  1. 【Linux】一步一步学Linux——group文件详解(108)
  2. python 矩阵乘法 跳过nan_python – Numpy:当一些向量元素等于零时,矩阵向量乘法不会跳过计算吗?...
  3. 计数排序与桶排序python实现
  4. 分形与数据结构第二篇
  5. Python数据库操作——连接MySQL
  6. 【MySQL】与【Oracle】
  7. 天天生鲜(Django4.0版本) + 开发遇到的问题及解决
  8. Android机顶盒网络地址端口连通性测试
  9. SAR空间自回归模型
  10. css表格一行删除线,EXCEL电子表格一行中间画一条删除线怎么画/excel表格如何划掉数据...
  11. 干货分享!12款响应式的移动网站模板免费下载
  12. macOS 原生系统压缩文件在 Windows 上解压可能会乱码的原因及解决办法
  13. 阿里云RDS数据库与自建数据库做主从同步
  14. 程序员从初级到中级10个秘诀
  15. 测绘资质-导航电子地图制作
  16. 阿爸,通往地狱的路要走好
  17. bilibili DR_CAN 现代控制理论 and 非线性控制理论 and 浙大 最优控制
  18. 验证boost是否安装成功
  19. 分布式GK Summary算法
  20. 2.Select操作

热门文章

  1. asp.net mvc5 设置Area下的为启动页
  2. 新手学JAVA(四)----装箱与拆箱
  3. Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(10)...
  4. Java开源——常见J2EE框架简介
  5. 微软发布 Mobile Express for Microsoft Dynamics CRM 4.0
  6. DOS下操作注册表的部分命令
  7. autoenv的使用方法
  8. 腾讯SNG的实习offer(多篇面经分享)
  9. 最短路之Dijkstra算法
  10. asp.net错误.在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错...