【问题标题】:MissingMethodException in groovy for a static class静态类的 groovy 中的 MissingMethodException
【发布时间】:2016-12-19 22:21:40
【问题描述】:

我在导入静态类的类中得到groovy.lang.MissingMethodException

这是实现。

import Corpus
class InRe {
    Corpus corpus
       corpus.posts().each{
       }
}

class L {
  public static class Corpus{
     public posts(){
     }
  }
}

当我运行我的主类时,它会抛出一个

线程“主”groovy.lang.MissingMethodException 中的异常:否 方法签名:

edu.msu.mi.forum.replies.InferReplies$_signatureExtractionByFrequentClosing_closure10.doCall() 适用于参数类型:

(edu.msu.mi.forum.webmd.WebMdConversation) 值: [edu.msu.mi.forum.webmd.WebMdConversation@fb309] 可能的解决方案: doCall(edu.msu.mi.forum.model.Post), findAll(), findAll(), isCase(java.lang.Object), isCase(java.lang.Object)

所以我的问题是,如果我从静态内部类调用方法,是否超出范围?

【问题讨论】:

  • 你需要导入L.Corpus

标签: java groovy


【解决方案1】:

你正在尝试进入 Corpus 课程。

Corpus 类是 L 类中的一个静态类。

以下代码:

class InRe {
   Corpus corpus
   corpus.posts().each{
   } 
}

应该改为:

class InRe {
   L.Corpus corpus = new L.Corpus()
   corpus.posts().each{
   } 
}

Corpus 的访问不是直接的,因此您可以使用 L.Corpus 访问它 导入应该与类位置相关,意味着导入应该是

import L

一般来说:静态嵌套类使用封闭类名访问。

支持上面写的可以关注java documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多