博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
方法的反射
阅读量:4604 次
发布时间:2019-06-09

本文共 2091 字,大约阅读时间需要 6 分钟。

一、方法的反射

 

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 }

 

转载于:https://www.cnblogs.com/lgshiwoo/p/5546647.html

你可能感兴趣的文章
你必知必会的SQL面试题
查看>>
html5 Canvas绘制时钟以及绘制运动的圆
查看>>
Unity3D热更新之LuaFramework篇[05]--Lua脚本调用c#以及如何在Lua中使用Dotween
查看>>
JavaScript空判断
查看>>
洛谷 P1439 【模板】最长公共子序列(DP,LIS?)
查看>>
python timeit
查看>>
Wireless Network 并查集
查看>>
51nod 1019 逆序数
查看>>
20145202马超《JAVA》预备作业1
查看>>
云推送注意(MSDN链接)
查看>>
IDEA 生成 jar 包
查看>>
加减乘除混合版
查看>>
linux基础6-bash shell编程
查看>>
掌握这几种微服务模式助你成为更出色的工程师
查看>>
为什么很多语言选择在JVM上实现
查看>>
CSS Reset CSS Framework
查看>>
LeetCode算法扫题系列19
查看>>
nginx获取经过层层代理后的客户端真实IP(使用正则匹配)
查看>>
YII实现dropDownList 联动事件
查看>>
历届试题 高僧斗法
查看>>