Java 反射理解(三)-- Java获取方法信息
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 反射理解(三)-- Java获取方法信息,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2050字,纯文字阅读大概需要3分钟。
内容图文
![Java 反射理解(三)-- Java获取方法信息](/upload/InfoBanner/zyjiaocheng/755/f2287facbb3d46eea637c8c01070d928.jpg)
Java 反射理解(三)-- Java获取方法信息
基本的数据类型、void关键字,都存在类类型。
举例如下:
public class ClassDemo2 {
public static void main(String[] args) {
Class c1 = int.class;//int 的类类型
Class c2 = String.class;//String类的类类型,可以理解为String类字节码
Class c3 = double.class;
Class c4 = Double.class;
Class c5 = void.class;
// getName 获取类的名称,getSimpleName 获取不包含包名的类的名称
System.out.println(c1.getName());
System.out.println(c2.getName());
System.out.println(c2.getSimpleName());
System.out.println(c5.getName());
}
}
Class类的基本API操作
要想获取方法信息,有以下几个步骤:
obj.getClass()
获取该对象的类类型。c.getName()
获取类的名称- 获取方法对象:
getMethods()
方法获取的是所有的public的函数,包括父类继承而来的getDeclaredMethods()
获取的是所有该类自己声明的方法,不问访问权限
- 通过 for 循环获取方法返回值的类类型和参数类型:
ms[i].getReturnType()
、ms[i].getParameterTypes()
举例如下:
获取类的成员变量方法信息
public class ClassUtil {
/**
* 获取成员函数信息
* @param obj 该对象所属类的信息
*/
public static void printClassMethodMessage(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(")");
}
}
}
测试:
public class ClassDemo3 {
public static void main(String[] args) {
String s = "hello";
ClassUtil.printClassMethodMessage(s);
Integer n1 = 1;
ClassUtil.printClassMethodMessage(n1);
}
}
内容总结
以上是互联网集市为您收集整理的Java 反射理解(三)-- Java获取方法信息全部内容,希望文章能够帮你解决Java 反射理解(三)-- Java获取方法信息所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。