Class myObjectClass = MyObject.class;Method[] method = myObjectClass.getMethods();
//Here the method takes a string parameter if there is no param, put null.Method method = aClass.getMethod("method_name", String.class);
Object returnValue = method.invoke(null, "parameter-value1");
public class A{
private String str= null;
public A(String str) {this.str= str;}}
.
A obj= new A("Some value");
Field privateStringField = A.class.getDeclaredField("privateString");
//Turn off access check for this fieldprivateStringField.setAccessible(true);
String fieldValue = (String) privateStringField.get(obj);System.out.println("fieldValue = " + fieldValue);
class ObjectAnalyzer {
private ArrayList<Object> visited = new ArrayList<Object>();
/*** Converts an object to a string representation that lists all fields.* @param obj an object* @return a string with the object's class name and all field names and* values*/public String toString(Object obj) {if (obj == null) return "null";if (visited.contains(obj)) return "...";visited.add(obj);Class cl = obj.getClass();if (cl == String.class) return (String) obj;if (cl.isArray()) {String r = cl.getComponentType() + "[]{";for (int i = 0; i < Array.getLength(obj); i++) {if (i > 0) r += ",";Object val = Array.get(obj, i);if (cl.getComponentType().isPrimitive()) r += val;else r += toString(val);}return r + "}";}
String r = cl.getName();// inspect the fields of this class and all superclassesdo {r += "[";Field[] fields = cl.getDeclaredFields();AccessibleObject.setAccessible(fields, true);// get the names and values of all fieldsfor (Field f : fields) {if (!Modifier.isStatic(f.getModifiers())) {if (!r.endsWith("[")) r += ",";r += f.getName() + "=";try {Class t = f.getType();Object val = f.get(obj);if (t.isPrimitive()) r += val;else r += toString(val);} catch (Exception e) {e.printStackTrace();}}}r += "]";cl = cl.getSuperclass();} while (cl != null);
return r;}}
public class Test {
public void firstMoveChoice(){System.out.println("First Move");}public void secondMOveChoice(){System.out.println("Second Move");}public void thirdMoveChoice(){System.out.println("Third Move");}
public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {Test test = new Test();Method[] method = test.getClass().getMethods();//firstMoveChoicemethod[0].invoke(test, null);//secondMoveChoicemethod[1].invoke(test, null);//thirdMoveChoicemethod[2].invoke(test, null);}
}