Perché i pacchetti non sono accessibili. Che cosa significa "accessibile" nel nome AccessibleObject
significa che ha una specifica di accesso e un ambito associato . Ad esempio, un oggetto potrebbe avere public
di accesso (a questo punto il suo ambito è irrilevante), o private
accesso da class Foobar
, o accesso a pacchetto locale (predefinito) nel pacchetto com.example.foo
. AccessibleObject
fornisce anche l'accesso alle annotazioni dichiarate su un elemento di origine Java, ma questo non è il suo scopo principale.
I pacchetti non hanno questo. Tutti i pacchetti in Java sono pubblici e sono accessibili a livello globale. (Credo che Java 9 introduca un sistema che cambierà questo in qualche modo, ma credo che introduca solo un nuovo sistema di classificazione ortogonale che non inciderà su AccessibleObject e pacchetti).
I pacchetti possono avere annotazioni, ma l'accesso a questi è fornito attraverso mezzi alternativi, quindi non è necessario estendere AccessibleObject
per fornire l'API pertinente per questo.
Ciò significa che i metodi in AccessibleObject
(principalmente isAccessible()
e setAccessible(boolean)
) sono irrilevanti per i pacchetti, perché i pacchetti sono sempre accessibili e questo non è qualcosa che può essere impostato. Pertanto, estendere questo tipo non sarebbe appropriato per loro.