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

基本的数据类型、void关键字,都存在类类型。

举例如下:

public class ClassDemo2 {

public static void main(String[] args) {

Class c1 = int.class;//int 的类类型

Class c2 = String.class;//String类的类类型,可以理解为String类字节码

Class c3 = double.class;

Class c4 = Double.class;

Class c5 = void.class;

// getName 获取类的名称,getSimpleName 获取不包含包名的类的名称

System.out.println(c1.getName());

System.out.println(c2.getName());

System.out.println(c2.getSimpleName());

System.out.println(c5.getName());

}

}

Class类的基本API操作

要想获取方法信息,有以下几个步骤:

obj.getClass() 获取该对象的类类型。

c.getName() 获取类的名称

获取方法对象:

getMethods() 方法获取的是所有的public的函数,包括父类继承而来的

getDeclaredMethods() 获取的是所有该类自己声明的方法,不问访问权限

通过 for 循环获取方法返回值的类类型和参数类型:ms[i].getReturnType() 、 ms[i].getParameterTypes()

举例如下:

获取类的成员变量方法信息

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

}

}

}

测试:

public class ClassDemo3 {

public static void main(String[] args) {

String s = "hello";

ClassUtil.printClassMethodMessage(s);

Integer n1 = 1;

ClassUtil.printClassMethodMessage(n1);

}

}

java 获取方法_Java 反射理解(三)-- Java获取方法信息相关推荐

  1. java日期类型_Java 学习笔记 (三) Java 日期类型

    以下内容摘自:  https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...

  2. JAVA集合05_Collection.toMap()应用、三个重载方法、解决重复key问题

    文章目录 ①. Collectors.toMap介绍 ②. Collectors.toMap有三个重载方法 ③. 收集一下属性和对象本身 ④. 常见的java.lang.IllegalStateExc ...

  3. java反射 获取属性_Java反射学习-3 - 反射获取属性,方法,构造器

    1 packagecn.tx.reflect;2 3 importjava.lang.reflect.Constructor;4 importjava.lang.reflect.Field;5 imp ...

  4. java反射 获取方法_java反射之获取类的信息方法(推荐)

    本文接上文"老生常谈反射之class类的使用(必看篇)",以编写一个用来获取类的信息(成员函数.成员变量.构造函数)的工具类来讲解"反射之获取类的信息" 1.获 ...

  5. java see 方法_Java 反射常用方法

    类名用途 Class类 代表类的实体,在运行的Java应用程序中表示类和接口 Field类 代表类的成员变量(成员变量也称为类的属性) Method类 代表类的方法 Constructor类 代表类的 ...

  6. java根据field名获取变量_Java反射有多强?这5大神奇功能,你需要了解!

    点击上方"蓝字",关注了解更多 什么是反射? 在Java中,对于任意一个运行中的对象,可以调用该对象的任意属性和方法:已知一个类,可以获取这个类的所有属性和方法,这就是反射机制. ...

  7. java反射方法_java反射之方法反射的基本操作方法

    本文接上文"java反射之获取类的信息方法(推荐)",利用反射(invoke)来获取一个类中的方法来执行. 1.定义一个类,包含三个名称相同,参数不同的方法 class A{ pu ...

  8. java測試動態方法_java反射学习

    反射的核心Class类 Class类是一个特殊的类,不能手动创建,只能由jvm来创建. jvm在类加载时会为每个类生成一个与之对应的Class对象在Java堆中(且每个类只会有一个对应的Class对象 ...

  9. java 获取接口的注解_java反射注解妙用-获取所有接口说明

    前言 最近在做项目权限,使用shiro实现restful接口权限管理,对整个项目都进行了重构.而权限管理需要用到所有的接口配置,包括接口url地址,接口唯一编码等.想要收集所有的接口信息,如果工程接口 ...

最新文章

  1. 如何看待导师直接说你写的论文就是垃圾?
  2. R语言使用trimws函数:trimws函数去除(删除、remove)字符串头尾的空格
  3. ​HealthKit开发快速入门教程大学霸内部教程
  4. MIT工程师利用人工大脑突触(忆阻器)设计了“脑芯片“,未来可用于便携式设备
  5. idea中配置个人注解代码模板
  6. [编译原理学习]词法分析
  7. 【Objective-C】玩转OC:正式开始自学OC
  8. 魅族15系统是android,魅族15系列评测:性能够用王者荣耀优化
  9. 【ERROR】:LNK1123: failure during conversion to COFF
  10. Linux内核的学习(二)
  11. 用Python统计新浪微博各种表情使用频率
  12. 用C#将PDF转换为Doc
  13. 数字孪生技术在智慧城市建设中有哪些应用?
  14. 计算机社团感恩节免费维修周策划书,【关于感恩节的活动策划】大学感恩节活动策划案_早教感恩节活动策划方案_(2)_亲亲宝贝网...
  15. python文本数据分析-新闻分类任务
  16. 心跳异常检测--使用Keras,K折交叉训练CNN一维卷积
  17. 苹果保修期_苹果手机怎么查看保修期 查询有效保修状态日期方法
  18. LK源码解析 9 总结
  19. 资深架构师成长路线 -- 架构师筑基必备技能
  20. 移植中文TTS(ekho)到ARM linux开发板

热门文章

  1. 记录PHP的执行时间
  2. 按创建日期删除指定日期之前的文件夹及文件夹下的所有子目录
  3. 百练 2972 确定进制 解题报告
  4. HDU1249_三角形切割平面
  5. (转)CKEditor和CKFinder在ASP.NET中的应用
  6. OCP学习和培训ppt汇总
  7. Java+selenium之WebDriver的抛出异常分析(七)
  8. js的跨域问题和解决办法
  9. 2021人工智能竞赛白皮书:1000场竞赛的深度分析
  10. 【方案分享】地产项目2022年新春1月系列暖场活动策划方案:新年置业,如虎添翼.pptx(附下载链接)...