まず第一に、私がこの質問への答えを研究しなかったので私が明白なことを言うならすみません、それはただ頭に浮かんだものであり、グーグル検索で答えを見つけることができませんでした(私もGroovyを知りません良い)。
Groovyの動作(第1版)を読んでいて、セクション7.6で、「通常のJavaクラスをGroovyクラスとして認識したい場合は、GroovyObjectインターフェイスを実装するだけで済みます。便宜上、サブクラス化することもできます。デフォルトの実装を提供する抽象クラスGroovyObjectSupport。」
だから私はいくつかのJava/Groovyを試しています(Javaでのコーディングをより速く/より簡単にする方法を見つけようとしています)そして私はこのオブジェクトをインスタンス化していますPersonはJavaオブジェクトであり、Personクラスは何の関係もありませんGroovy(つまり、GroovyObjectなどを実装していません)。人には、ゲッター/セッターを含む保護されたフィールド、名前があります。groovyテストケース(GroovyTestCaseを拡張)でこのようにアクセスできます。これは別のパッケージに含まれているため、次のようにアクセスすることはできません。
Person person = new Person('joe')
println "Name: ${person.name}"
Groovyオブジェクトが持つメタ情報を使用するのではありませんか?つまり、Groovyはインターセプトし、「person.name」の「name」部分を取得して、getName()メソッドなどを呼び出しますか?しかし、personはJavaオブジェクトです...つまり、そのロジックを使用できるようにするべきではありません。
GroovyObjectまたは拡張GroovyObjectSupportを実装していませんが、このJavaオブジェクトには使用できるGroovy機能があるようです。
私の質問は、Groovyで使用されるJavaオブジェクトから何を推測できるかということです。明らかに、いくつかのGroovy機能でJava定義クラスを拡張するために、舞台裏で何かが行われています...しかし、どの機能ですか?
つまり、私の質問は、「Groovyコンテキスト内で使用するとJavaクラスはどうなるのか」ということになります。
主題に関するどんな情報でもありがたいです、ありがとう:)