欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java反射之通过反射获取一个对象的方法信息(实例代码)

程序员文章站 2024-03-31 20:57:46
以下代码为一个工具类 package com.imooc.reflect; import java.lang.reflect.method; publ...

以下代码为一个工具类

package com.imooc.reflect;

import java.lang.reflect.method;

public class classutil {
	
	public static void printclassmessage(object obj){
		//要获取类的信息,首先要获取类的类类型
		class c = obj.getclass();//传递的是哪个子类的对象,c就是该子类的类类型
		//获取类的名称
		system.out.println("类的名称为:"+c.getname());
		/*
		 * method类,方法对象
		 * 一个成员方法就是一个method对象
		 * getmethods()方法获取的是所有的public的函数,包括父类继承而来的
		 * getdeclaredmethods()获取的是所有该类自己声明的方法,部位访问权限
		 */
		method[] methods = c.getmethods();
		//
		for(int i=0;i<methods.length;i++){
			//得到方法的返回值类型的类类型
			class returntype = methods[i].getreturntype();
			
			system.out.print(returntype.getname()+" ");
			//得到方法的名称
			system.out.print(methods[i].getname()+"(");
			//获取参数类型--》得到的参数列表的类型de类类型
			class[] paramtype = methods[i].getparametertypes();
			for(class class1:paramtype){
				system.out.print(class1.getname()+",");
			}
			system.out.println(")");
		}
	}

}
//output:
	//类的名称为:java.lang.string
	//boolean equals(java.lang.object,)
	//java.lang.string tostring()
	//int hashcode()
//.......

以下代码为测试类:

package com.imooc.reflect;

public class testclassutil {

	public static void main(string[] args) {
		string string = "hello";
		classutil.printclassmessage(string);
		
		integer n1 = 1;
		classutil.printclassmessage(n1);
	}
}

截图如下:

Java反射之通过反射获取一个对象的方法信息(实例代码) 

以上就是小编为大家带来的java反射之通过反射获取一个对象的方法信息(实例代码)的全部内容了,希望对大家有所帮助,多多支持~