例子代码如下:

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

执行效果:

java反射-获取方法信息的更多相关文章

  1. java 反射获取方法返回值类型

    //ProceedingJoinPoint pjp //获取方法返回值类型 Object[] args = pjp.getArgs(); Class<?>[] paramsCls = ne ...

  2. Java 反射理解(三)-- Java获取方法信息

    Java 反射理解(三)-- Java获取方法信息 基本的数据类型.void关键字,都存在类类型. 举例如下: public class ClassDemo2 { public static void ...

  3. java反射子之获取方法信息(二)

    一.获取方法 1.方法作用. 2. 二.获取方法信息.(修饰符,返回值,方法名称,参数列表,抛出的异常). ############################################## ...

  4. java 反射提取类信息, 动态代理 和过滤某些方法演示

    java 反射提取类信息, 动态代理 和过滤某些方法演示 package org.rui.classts.reflects; import java.lang.reflect.Constructor; ...

  5. Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别

    Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别 ​ 在工作中遇到一个问题,就是你需要去判断某个字符串是不是对象的某个成员属性名,然后根据判断结果 ...

  6. c#反射机制学习和利用反射获取类型信息

    反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的 ...

  7. C#反射 获取程序集信息和通过类名创建类实例(转载)

    C#反射获取程序集信息和通过类名创建类实例 . System.Reflection 命名空间:包含通过检查托管代码中程序集.模块.成员.参数和其他实体的元数据来检索其相关信息的类型. Assembly ...

  8. <经验杂谈>C#中一种最简单、最基本的反射(Reflection):通过反射获取方法函数

    说起反射之前和很多用C#/.net的同仁们一样,相比于一般应用层对数据的增删改查总有点觉得深奥到难以理解.其实程序这东西,用过.实践过就很简单,我一直这么认为. 先说下概念:反射 Reflection ...

  9. Java反射获取class对象的三种方式,反射创建对象的两种方式

    Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...

随机推荐

  1. 【9.2校内测试】【开学祭】【exgcd】【树规(背包】【模拟】

    比较裸的$exgcd$的应用? $exgcd$可以算出在$x$和$y$分别是最小正整数时的解.注意在这里因为有$a(x+\frac{b}{d})+b(y-\frac{a}{d})=c$,$d=gcd( ...

  2. bzoj 1776

    收获: 树上直径一定包含深度最深的点. 然后O(nlogn) 暴力. /************************************************************** P ...

  3. HashSet,TreeSet和LinkedHashSet

    Set接口 Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false. Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个对象用 ...

  4. 典型案例收集-使用OpenVPN连通多个机房内网(转)(静态路由)

    说明: 1.这篇文章主要是使用静态路由表实现的多个机房通过VPN连接后的子网机房互通. 2.OpenVPN使用的是桥接模式(server-bridge和dev tap),这个是关键点,只有这样设置才可 ...

  5. R类

    资源文件的使用分为在代码中使用和在其他资源文件中引用该资源文件.在我们编译一个Android应用时,Android会自动生成一个R类,在该类中根据不同的资源类型又生成了相应的内部类,该类包含了系统中使 ...

  6. linux 升级系统内核linux-4.10版本

    http://blog.csdn.net/steven_liwen/article/details/68487241

  7. perf 函数调用性能(函数流程图)

    perf record -g -p pid perf record -g -t tid perf report -g fractal,0.2,caller perf report -g fractal ...

  8. RapidSVN的使用

    RapidSVN是一个可视化 SVN 客户端,运行速度快,简单易用,现在很多已经做成做成便携版,安装都不用.小乌龟那个SVN感觉太复杂了...不妨试下这个. 1.下载安装 2.运行RapidSVNPo ...

  9. redis的主从配置 扩容

    由于redis的集群功能没有完全编写好,见:http://redis.io/topics/cluster-spec 集群只有测试版的第8个版本redis3.0.0 见 http://redis.io/ ...

  10. javacc学习总结

    在学javacc的时候.发现一个问题,见下: Example.jj文件 PARSER_BEGIN(Example) public class Example { public static void ...