一、方法的反射
1 import java.lang.reflect.Method; 2 import java.util.Scanner; 3 4 public class kh { 5 public static void main(String[] args) { 6 Scanner s=new Scanner(System.in); 7 System.out.println("请输入字符:"); 8 test dd=new test(); 9 String f=s.nextLine();10 //只需要获取类中的方法名,即可实现类中方法的调用11 try {12 Class d=test.class;13 Method method=d.getMethod(f, new Class[]{});//当方法中有参数时,此处应添加参数14 method.invoke(dd, new Class[]{});15 } catch (Exception e) {16 17 e.printStackTrace();18 }19 20 21 }22 23 }24 class test{25 public void print(){26 System.out.println("print----");27 }28 public void print1(){29 System.out.println("print1---------");30 }31 }
2、调用javaBeen中的get函数实例
1 import java.lang.reflect.Method; 2 3 public class kh{ 4 public static void main(String[] args) { 5 User user=new User(30,"zhangsan"); 6 7 System.out.println(h("age",user)); 8 9 }10 public static Object h(String name,Object object){11 //生成类类型12 Class a=object.getClass();13 //处理输入的name成getName或getAge14 String getname="get"+name.substring(0, 1).toUpperCase()+name.substring(1);15 try {16 //调用JavaBeen中的get函数17 Method method=a.getMethod(getname, new Class[]{});18 Object o=method.invoke(object, new Class[]{});19 return o;20 } catch (Exception e) {21 e.printStackTrace();22 return null;23 }24 25 }26 }27 class User {28 int age;29 String name;30 public int getAge() {31 return age;32 }33 public void setAge(int age) {34 this.age = age;35 }36 public String getName() {37 return name;38 }39 public void setName(String name) {40 this.name = name;41 }42 public User(int age, String name) {43 super();44 this.age = age;45 this.name = name;46 }47 48 }