例子代码如下:

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. Navicat连接Docker中的mysql报错:client does not support authentication

    1.进入mysql容器中 docker exec -it mysqltest(mysql容器名称) bash 2.进入mysql数据库 mysql -uroot -p 3.输入mysql密码 4.远程 ...

  2. bzoj 1045

    确定初始状态(n与1直接谁给了谁几个),后面的就确定了,再根据总结出来的东西决定前面谁给谁几个最优. n=1000000!!! /*********************************** ...

  3. Java高级架构师(一)第43节:Varnish简介、安装和基本使用

    第一部分:Varnish简介 Varnish是一款开源的.高性能的HTTP加速器和反向代理服务器. Varnish反向代理的能力远不如Nginx. Varnish主要作用是HTTP的加速器,主要通过缓 ...

  4. uva 6959 Judging hash

    Judging Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/problem/viewProb ...

  5. CentOS 6.9/7安装Parse+PostgreSQL

    一.安装Parse-Server # npm install -g parse-server --unsafe-perm 备注:用--unsafe-perm参数的目的是使用了root权限进行安装. 二 ...

  6. miniSpartan6, another Spartan 6 Kit

    http://thehardwarer.com/2013/05/minispartan-6-another-spartan-6-kit/ miniSpartan6 is an Opens Source ...

  7. /etc/fstab 解析

    http://www.codesec.net/view/39930.html root@qs-wg-db1 /]# cat /etc/fstab LABEL=/ / ext3 defaults 1 1 ...

  8. How to run WPF – XBAP as Full Trust Application

    Recently I work on WPF-XBAP application that will run from intranet website: This application must h ...

  9. 用 C# 做人脸检测(基于EmguCV)

    c#datagridmatlab人脸识别图像处理path 下载源码 准备工作(必须) 下载  EmguCV 傻瓜安装后,把 bin 目录添加到环境变量里去,比如安装在 X:\EmguCV\ 目录下,就 ...

  10. linux文件系统命令(6)---touch和mkdir

    一.目的 本文将介绍linux下新建文件或文件夹.删除文件或文件夹命令.         touch能够新建文件,mkdir用来新建文件夹.rm用来删除文件或文件夹.         本文将选取ubu ...