2016-12-19 10 views
1

静的クラスをインポートするクラスにgroovy.lang.MissingMethodExceptionがあります。静的クラスのGroovyで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)値: [[email protected]]可能なソリューション: doCall(edu.msu.mi.forum.model.Post)、findAll()、findAll()、 isCase(java.lang。オブジェクト)、isCase(java.lang.Object)

私は静的な内部クラスからメソッドを呼び出す場合、私の質問は、範囲外ですか?

+0

'L.Corpus'をインポートする必要があります。 – chrylis

答えて

3

あなたはコーパスクラスに進もうとしています。

コーパスクラスは、Lクラス内の静的クラスです。

次のコード:

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

は、次のように変更します。コーパスへのアクセス

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

あなたがL.Corpusを使用して、それに達することができるように指示していません インポートはクラスの位置に関連している必要があります。インポートが行われることを意味します。

一般的には210

import L 
静的ネストされたクラスは、囲みクラス名を使用してアクセスされます。

java documentationに従うことができます。

関連する問題