Intellij idea 更改Groovy类后,IntelliJ不会重新加载类定义

Intellij idea 更改Groovy类后,IntelliJ不会重新加载类定义,intellij-idea,groovy,Intellij Idea,Groovy,我有一个Groovy类(类a),它最初有一个构造函数签名: Profiler(String name, String method, boolean isLeader) 我将该类添加到另一个groovy类(类B)。我将构造函数签名更改为: Profiler(String name, String method) 然而,B类仍然使用原始类。我尝试过重建,用groovy存根删除目标,删除类文件,执行maven clean安装,但它仍然保留旧版本的类a 我在用IntelliJ。这可能是一个没有希望

我有一个Groovy类(类a),它最初有一个构造函数签名:

Profiler(String name, String method, boolean isLeader)
我将该类添加到另一个groovy类(类B)。我将构造函数签名更改为:

Profiler(String name, String method)
然而,B类仍然使用原始类。我尝试过重建,用groovy存根删除目标,删除类文件,执行maven clean安装,但它仍然保留旧版本的类a


我在用IntelliJ。这可能是一个没有希望的原因,因为有太多的未知变量。有没有其他人见过这样的情况并能够解决它?

我没有经历过这种情况,但您可以通过执行以下操作来尝试找出原因:

  • 将断点放在目标位置(类B,在探查器类实例化之前)
  • 启动调试会话
  • 等待断点被命中
  • 评估Profiler.class.protectionDomain.codeSource.location-它将显示本地文件系统中使用编译字节码(*.class)的位置,您可以实际删除它

  • 这没有道理。在名为
    a
    的类中不能有像
    Profiler(字符串名称、字符串方法、布尔isLeader)这样的构造函数
    ,在名为
    B
    的类中也不能有像
    Profiler(字符串名称、字符串方法)
    这样的构造函数。这是不可能的。语言不允许。类A和类B不是类名。当我计算Profiler.class.protectionDomain.codeSource.location时,它抛出MissingPropertyException。没关系。我必须完全限定类的名称(我没有进行导入)。它指向一个jar文件。谢谢