Class<?> classObj = Class.forName("com.example.MyClass");
MyClass obj = new MyClass();
Class<?> classObj = obj.getClass();
int modifiers = classObj.getModifiers();
Class<?> superClass = classObj.getSuperclass();
Class<?>[] interfaces = classObj.getInterfaces();
Object instance = classObj.newInstance();
Method method = classObj.getDeclaredMethod("methodName", argTypes);
Object result = method.invoke(instance, args);
Field field = classObj.getDeclaredField("fieldName");
field.setAccessible(true);
Object value = field.get(instance);