використовуючи ExpandoMetaclass у результатах друкарського друку та null значення також

зразок progame, коли я намагаюся запустити, використовуючи метод expandometaclass, він дає мені два вихідних одного бажаного результату, другий - "null" як вихід, звідки null вибирається?

class testA {

    static  def X(def var) {
        Y(var)
    }

    static def Y(def var) {
        println var
    }
}
testA.metaClass.static.newMethod = {z_var -> X(z_var) }
println testA.newMethod("anish")

вихід:

anish
**null**

чому ця програма також друкує нуль як вихід

0
@tim_yates дякую за пропозицію, я зроблю це наступного разу
додано Автор anish, джерело
Ви повинні намагатися слідкувати за конвенціями іменування при написанні класів та методів. Класи звичайно починаються з великої літери, а методи починаються з малих літер, тому ваш клас краще буде називатися testA , а ваші методи x і y відповідно. Це допоможе зробити ваш код легшим для читання іншими людьми
додано Автор tim_yates, джерело

1 Відповіді

null - це повернення значення з newMethod . У випадку, якщо ви не бажаєте, щоб це було надруковано, видаліть println з вашого рядка

println testA.newMethod("anish")
2
додано