您的位置:首页 > 编程语言 > Java开发

Java反射(三):java获取方法信息

2017-07-22 15:49 381 查看
1、基本数据类型,某些关键字也有类类型
package testclass;

public class ClassDemo {
public static void main(String[] args) {
Class c1 =int.class;
Class c2 =String.class;
Class c3 =double.class;
Class c4 =short.class;
Class c5 =float.class;
Class c6 =long.class;
Class c7 =Long.class;//包装类的类类型
Class c8 =void.class;//返回类型的类类型

System.out.println(c1.getName());
System.out.println(c2.getName());
System.out.println(c2.getSimpleName());//不包含包名的类名称
System.out.println(c7.getName());
System.out.println(c8.getName());
}

}

如上代码通过基本数据类型等获取类类型,再通过类类型获取类的信息,打印结果如下



除了获取名字之外还可以获取别的信息,例如构造函数信息,方法信息等等。

2、获取类的方法信息

package testclass;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class ClassUtil {
public static void getMethodMsg(Object obj){
//要获取类的信息首先要获取类的类类型
Class clazz = obj.getClass();//传递的是哪个类的对象,clazz就是哪个类的类类型
//获取类的名称
System.out.println(clazz.getName());

//获取类的方法,一个方法就是一个Method对象
//获取类的所有public函数,包括从父类继承的
Method[] methods = clazz.getMethods();
//获取类自己所有的声明的方法,不论是什么访问权限
//        methods = clazz.getDeclaredMethods();

for(Method m : methods){
// 权限修饰符
int mo = m.getModifiers();
String priv = Modifier.toString(mo);

//获取方法返回值类型的类类型
Class returnType = m.getReturnType();
//获取方法返回值类型的名称
System.out.print(priv + " "+ returnType.getName()+" ");

//获取方法的名称
System.out.print(m.getName()+"(");

//获得参数类型————获得参数列表类型的类类型
Class[] clazzs =m.getParameterTypes();
for (int i = 0; i < clazzs.length; i++) {
StringBuffer methodName = new StringBuffer(clazzs[i].getName());
if(i<clazzs.length-1){
methodName.append(",");
}
System.out.print(methodName);
}
System.out.println(")");
}
}

public static void main(String[] args) {
String s="hello";
ClassUtil.getMethodMsg(s);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐