0
:
class C{
public int a
int b
String s
float f
static int x
}
私は
を書きましたdef c = new C()
println c.class.getFields()
これは私が出力として得たものである:
[public int C.a, public static transient boolean C.__$stMC]
誰かが理由だけを説明することができますがリストに表示されますか? そして、他のエンティティC.__$stMC
は何ですか? 私はオンラインで検索しましたが、stMCはstaticMetaClassを表しているようです。どうか明らかにしてください。おかげ
しかし、 Groovyでは、すべてのフィールドはデフォルトで公開されます。だから、 'getFields()'もそれらを含めるべきでしょうか? また、$ stMCに関する考えはありますか?それは何のために立つのですか? –
すべてのフィールドにはパブリックアクセス修飾子があります。 obj.prop = "x"を使用して値を変更すると、フードの下に実際にメソッドが呼び出されます。コンパイルされたJavaフィールドの下にはパブリックではありません。 –