public static void main(String[] args) {
MethodTest mt = new MethodTest();
mt.f(10, 10);
Class c = mt.getClass();
try {
Method method = c.getMethod("f", new Class[] { int.class,
int.class, int.class });
System.out.println(mt.f(10, 10, 10));
int ret = (Integer) method.invoke(mt, new Object[] { 10, 10, 10 });
System.out.println(ret);
} catch (Exception e) {
e.printStackTrace();
}
}
public void f(int a, int b) {
System.out.println(a + b);
}
public int f(int a, int b, int c) {
System.out.print("三个数的和:");
return a + b + c;
}
}
//============================================================================
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Scanner;
public class MethodDemo1 {
public static void main(String[] args) {
System.out.println("请输入要执行的指令...");
Scanner sc = new Scanner(System.in);
String action = sc.nextLine();
UserService us = new UserService();
// if ("login".equals(action)) {
// us.login();
// } else if ("update".equals(action)) {
// us.update();
// } else if ("delete".equals(action)) {
// us.delete();
// }
// 用反射去替换
try {
Class c = us.getClass();
Method method = c.getMethod(action, new Class[] {});
method.invoke(us, new Object[] {});
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("========================================");
try {
User user = new User(30, "zhangsan");
Class c = user.getClass();
Field field = c.getDeclaredField("name");
field.setAccessible(true);
String name = (String) field.get(user);
System.out.println(name);
field.set(user, name.toUpperCase());
System.out.println(user.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
class UserService {
public void login() {
System.out.println("login...");
}
public void update() {
System.out.println("update...");
}
public void delete() {
System.out.println("delete...");
}
}
class User {
private int age;
private String name;
public User() {
}
public User(int age, String name) {
super();
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}