Распечатывание переменных и значений в объекте Groovy

Как я могу распечатать (общедоступный и внутренний) переменные и их значения объекта Groovy?

Т.е.

class X
{
  def X = 10
  def Y = 5

  private void doPrivate()
  {
      def Z = 3
  }
}

Должен дать

X, 10
Y, 5
Z, 3

Это должно быть динамическим решением, т.е. во времени выполнения.

31
задан geejay 18 June 2010 в 12:56
поделиться

2 ответа

dump ()

Например

"ddd".dump()

Выводит:

java.lang.String@2ef900 value = dddd offset = 0 count = 4 hash = 3078400

79
ответ дан 27 November 2019 в 21:26
поделиться

Вы имеете в виду вот так?

def a = "Hi"

a.properties.each { println "$it.key -> $it.value" }

Дает:

class -> class java.lang.String
bytes -> [72, 105]
empty -> false

[edit]

С вашим отредактированным вопросом это даст вам:

class -> class X
y -> 5
metaClass -> org.codehaus.groovy.runtime.HandleMetaClass@16de4e1[groovy.lang.MetaClassImpl@16de4e1[class X]]
x -> 10

Я не думаю, что возможно получить значение Z во время выполнения ... Единственный способ, который я могу придумать, - это сделать это через AST ...

38
ответ дан 27 November 2019 в 21:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: