java反射-获取方法信息
2024-10-19 06:22:48
例子代码如下:
package com.reflect; import java.lang.reflect.Method; public class ClassUtill { /*
* 打印类的信息,包括类的成员函数,成员变量,
* obj 该对象所属类的信息
* */
public static void printClassMessage(Object obj)
{
//要获取类的信息,首先要获取类的类类型
Class c=obj.getClass(); //传递的是哪个子类的对象,c就是该子类的类类型。
//获取类的名称
System.out.println("类的名称是"+c.getName()); /*
* Method类,方法对象
* 一共成员方法就是一共Method对象
* getMethods()方法是获取的所有的public的函数,包括父类继承而来的
* getDeclaredMethods()获取的是该类自己声明的方法,不问访问权限
* */
Method[] ms=c.getMethods(); //c.getDeclaredMethods()
for(int i=0;i<ms.length;i++)
{
//得到方法的返回值类型的类类型
Class returnType=ms[i].getReturnType();
System.out.print(returnType.getName()+" ");
//得到方法的名称
System.out.print(ms[i].getName()+"(");
//获取参数类型-->得到的是参数列表的类型的类类型
Class[] paramTypes=ms[i].getParameterTypes();
for (Class class1 : paramTypes) { System.out.print(class1.getName()+",");
}
System.out.println(")");
}
}
}
调用这个类:
package com.reflect; public class ClassDemo2 { public static void main(String[] args) { String s="hello";
ClassUtill.printClassMessage(s);
}
}
执行效果:
最新文章
- 10.Struts2连接数据库
- Spring之Ioc
- Oracle中用户的基本操作
- [CLK Framework] CLK.Threading.PortableTimer - 跨平台的Timer类别
- HDU 1850 Being a Good Boy in Spring Festival
- 502 Bad Gateway什么意思
- smarty缓存函数
- 使用IIS 7.0 Smooth Streaming 优化视频服务
- @Resource和@Autowired
- C# DES
- ubuntu下vpn无反应的解决办法
- RGB與CIELAB色彩空間轉換
- 浅谈DevExpress<;三>;:在GridView中加载动态图片
- sql 查询一段时间内某个时间点数据
- ubuntu频繁出现 安装包依赖关系
- python中收集函数的解包问题
- Ubuntu MYSQL环境搭建
- 2018.07.08 hdu5316 Magician(线段树)
- 菜单根据菜单ID向下递归
- 给出a的定义 -- 指针 和 数组