EnumSet has an private field for the value class. Why not provide public access?
Also, EnumMap has private fields for key and value classes. Same question.
For non-empty sets/maps, it is possible iterate the first element and extract class from a non-null value. However, for empty sets/maps, this is not possible.
I cannot think of a technical reason not to. However, I also can't think of a compelling use-case that requires it.
But ultimately, the answer for your Questions is that it was a decision made by the Java designers, and only they are in a position to explain the actual reasoning for the decisions.