10

Pythonでは、オブジェクトに含まれるメソッドとフィールドを確認できます。

print dir(my_object)

Groovyのそれと同等のものは何ですか(それが1つあると仮定して)?

4

3 に答える 3

9

Groovyでは特に見栄えがします(テストされていない、このリンクから取得したので、コードクレジットはそこに行く必要があります):

// Introspection, know all the details about classes :
// List all constructors of a class
String.constructors.each{println it}

// List all interfaces implemented by a class
String.interfaces.each{println it}

// List all methods offered by a class
String.methods.each{println it}

// Just list the methods names
String.methods.name

// Get the fields of an object (with their values)
d = new Date()
d.properties.each{println it}

あなたが探している一般的な用語は内省です。

于 2012-06-04T13:53:37.077 に答える
7

ここで説明するように、Stringオブジェクトに定義されているすべてのメソッドを見つけるには:

 "foo".metaClass.methods*.name.sort().unique()

Pythonバージョンほど単純ではありません。おそらく、他の誰かがより良い方法を示すことができます。

于 2012-06-04T13:53:47.623 に答える
0

通常のJavaリフレクションAPIを使用するだけでなく、次のようなものがあります。

http://docs.codehaus.org/display/GROOVY/JN3535-Reflection

メタクラスを使ってゲームをプレイすることもできます。

于 2012-06-04T14:16:21.763 に答える