方法的反射

一、方法的反射

 

 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或getAge
14         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 }

 

posted on 2016-05-31 17:24  lgshiwoo  阅读(270)  评论(0编辑  收藏  举报