import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.lang.reflect.*; public class ReflectionTest extends JFrame { public static void showClassInfo(Object o) { Class c = o.getClass(); System.out.println("Klass: " + c.getName()); Class sc = c.getSuperclass(); System.out.println("Superklass: " + sc.getName()); Method[] methods = c.getDeclaredMethods(); System.out.println("Metoder:"); for (int i = 0; i < methods.length; ++i) System.out.println(" " + methods[i].getName()); Constructor[] constructors = c.getDeclaredConstructors(); System.out.println("Konstruktorer:"); for (int i = 0; i < constructors.length; ++i) System.out.println(" " + constructors[i].getName()); Field[] fields = c.getDeclaredFields(); System.out.println("Fält:"); for (int i = 0; i < fields.length; ++i) System.out.println(" " + fields[i].getName()); } public static void main(String[] args) { JButton button = new JButton("Hej"); showClassInfo(button); } } // class ReflectionTest