//how to get class
Class clazz = String.class;
clazz = int.class;
String s = "abc";
clazz = s.getClass();
clazz = Class.forName("java.util.ArrayList");
//create instance using default constructor
List list = (List) clazz.newInstance();
//isXXX
clazz.isArray();
//package
Package pkg = clazz.getPackage();
//Note: getField() & getDeclaredField()
//fields
Field field1 = clazz.getField("fieldName"); //
//get value:
field1.getXXX(obj);
//set value:
field1.setXXX(obj, value);
Field[] fields = clazz.getFields();
//constructor
Constructor con = clazz.getConstructor(String.class, int.class);
//invokd:
con.newInstance(Object...initargs)
Constructor[] cons = clazz.getConstructors();
//method
Method method = clazz.getMethod("methodName", String.class, int.class);
//invoke method
method.invoke(obj, Object...args)
Method[] ms = clazz.getMethods();