21、Java入门—反射之获取方法信息

基本数据类型,void关键字都存在类类型
class.getMethods()方法获取是该类的所有public方法,包括从父类继承的方法;
class.getDeclareMethods()方法获取该类自行声明的所有方法,不论访问权限;
method.getName()获取方法名
method.getReturnType()获取方法的返回值
method.getParameterTypes(),获取方法的参数类型的类类型数组class[]
三获取方法信息:
一、基本的数据类型,void关键字等都存在类类型
Class c = 基类.class (int,String,double,void等)
二、Class类的基本API操作的
1、c.getName()可以获取类的名称
2、c.getSimpleName();//不包含包名的类的名称
3、c.getMethods()获取类的【public方法】集合,【包括继承来的】
***注意【所有方法都是Method类的对象】
4、c.getDeclaredMethods()获取的是所有该类【自己声明】的方法,【不问访问权限】
三、Method类提供了一些操作方法的方法
1、.getReturnType()得到该方法的返回值类型的类类型(class),如int.class String.class
2、.getName()得到方法的名称
3、.getParameterTypes()获得参数列表类型的类类型,如参数为(int,int)则得到(int.class ,int class)
Class c1 = int.class; int的类类型
Class c2 = String.class; String类的类类型 String类字节码
Class c3 = double.class; double这个数据类类型的字节码表示方式
Class c4 = Double.class; Double这个类的类类型字节码表示方式
Class c5 = void.class; 表达了void这个类的类类型
getName为这个类的类类型的具体名称 
c1.getName ---> int
c2.getName ---> java.lang.String 类的全称

c2.getSimpleName ---> String 不包含包名的类的名称


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(")");
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值