The core reflection API has historically been happy to ignore those corner 
cases. Instead, it's designed for the typical situation where everything is 
consistent and available. You're somewhat uncomfortable with this design 
choice, which is fair, but maybe a better long-term path to getting to a less 
brittle API is to design a new, lower-level API, rather than trying to slowly 
introduce a new way of doing things into java.lang.Class.

Maybe.  Right now, reflection is _mostly_ classfile reflection, but with a few weird conveniences sprinkled atop (i.e., getMethods() returns all public methods, inherited or not), which are just enough to make people think that reflection is just a bad implementation of language-level reflection.  I would rather pull core reflection _down_ to its true spirit (classfile contents), and then separately build more conveniences _on top_.

Reply via email to