2014-02-12 2 views
0

Я хотел бы рекурсивно распечатать конфигурацию (или любой объект в этом случае) построения градиента. Есть ли способ рекурсивно напечатать все свойства объекта в градуированной четности (особенно), если вы не знаете, что все свойства?Как печатать конфигурацию градиента рекурсивно?

Вот пример.

idea { 
    module{ 
    scopes.COMPILE.plus += configurations.playManaged 
    scopes.PROVIDED.plus += configurations.provided 

    scopes.each { it -> 
     println("[${it}]") // how to replace this with something that will print all properties of the object? 
    } 
    } 
} 

В этом примере, я знаю прицелы имеют как компилировать и ПРЕДОСТАВЛЯЮТСЯ свойства, и каждый из них имеет плюс собственность. Но я не знаю, какие другие вложенные свойства могут существовать на этих объектах. Было бы неплохо иметь функцию, которая при передаче любого объекта все свойства будут рекурсивно напечатаны на консоли, что позволит тщательно изучить объект.

ответ

2

scopes является LinkedHashMap, поэтому лучшее, что вы можете сделать, это:

scopes.each { k, v -> println "$k -> $v" } 

Для печати клавиш (например: COMPILE) и их текущие значения.

Если бы это был объект кроме карты, вы могли бы сделать что-то вроде:

scopes.getMetaClass().properties.each { println "PROPERTY $it.name" } 

Но это будет просто показать вам class и empty, так как это Map :-)

Смежные вопросы