2009-05-05 12 views
3

私はいくつかのシンプルなGroovyクラスを作成しています。GroovyクラスのmetaClassプロパティを隠す方法

class Person { 
    int age 
    String name 
} 

これらは、オブジェクトのプロパティを引き出すためにリフレクションに依存するJavaメソッドで使用されています。年齢と名前。問題は、metaClassもプロパティとして表示されていることです。このプロパティを無視するようにJavaメソッドを更新することはオプションではありません。私はnullにmetaClassプロパティを設定しようとしましたが、うまくいきませんでした。

+0

コンパイラによって他のコンテキストで追加される他のメンバがありますクラス)。おそらく、パッケージ/保護/パブリックプロパティのみを反映するようにリフレクションコードを更新することはできますか? –

+0

あなたはmetaClassを隠す方法を見つけましたか? –

+0

いいえ、私はちょうどその周りに取り組んだ。 – Joel

答えて

0

MetaClassは、作成中にGroovyクラスのために注入されます。 IMHO私はあなたがNullに設定できるとは思わない。呼び出したsetMetaClassメソッドは、クラスに設定されている可能性のあるカスタムメタクラスを、作成中に注入されるものではなくNullに設定します。

1

JavaとGroovyのこれらのクラスを使用しているのであれば、GroovyではなくJavaでPOJOを作成するだけではどうですか。 これはあなたの質問に答えることはできませんが、なぜGroovyをPOJOに使用するのかを知ることは嬉しいです

関連する問題