Code below defines a trait T
with a private val someVal
and an anonymous class extending T
. If we call getMethods
from the instance of the anonymous class, someVal
is listed as a public method:
scala> trait T { private val someVal = 3 }
defined trait T
scala> new T {}.getClass.getMethods.apply(0)
res2: java.lang.reflect.Method = public int $anon$1.$line6$$read$T$$someVal()
Of course someVal
isn't accessible in this subclass, but why is it even in the return of getMethods
, as public?
Aucun commentaire:
Enregistrer un commentaire