ExprodoMetaclass-ді басып шығарудың нəтижесінде жəне нөлдік мәнде де қолдануға болады

Үлгілік программа, мен кеңейтілген кеңістіктегі техниканы пайдалана отырып, іске қосылуға тырысқанда, ол маған екі нəтижесін шығарады, нөлдік мəні қайдан алынады?

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_y ұсыныс үшін алғысымды келесі жолы жасаймын
қосылды автор anish, көзі
Сыныптар мен әдістерді жазғанда конвенцияларды атау ұстануға тырысыңыз. Сыныптар әдетте бас әріппен басталады және әдістері кіші әріппен басталады, сондықтан сіздің сыныпыңыз TestA және x және y тиісінше. Бұл сіздің кодыңызды басқа адамдарға оңай оқуға пайда әкеледі
қосылды автор tim_yates, көзі

1 жауаптар

null - newMethod ішіндегі қайтару мәні. Басып шығаруды қаламасаңыз, жолдан println алып тастаңыз

println testA.newMethod("anish")
2
қосылды