0
我試圖如下使用方法getFields()
一個簡單的啞類:
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]
有人能解釋爲什麼只有a
出現在列表中? 什麼是其他實體C.__$stMC
? 我在網上搜索,似乎stMC代表staticMetaClass。請澄清。由於
但在Groovy中,所有的字段都是默認的。所以'getFields()'也應該包含這些,不是嗎? 另外,關於$ stMC的任何想法?它代表什麼? –
所有字段都有公共訪問修飾符。當您使用obj.prop =「x」更改值時,它實際上正在調用一個方法。在編譯的java字段下是不公開的。 –