I'm not sure how .NET's reflection works, but it does have reflection, where you can say stuff like "tell me all of String's methods" and for each of those you can find out public vs private vs protected, final vs not, etc.
See http://download-llnw.oracle.com/javase/1.3/docs/api/java/lan...