java 获取方法_Java 反射理解(三)-- Java获取方法信息
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获取方法信息相关推荐
- java日期类型_Java 学习笔记 (三) Java 日期类型
以下内容摘自: https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...
- JAVA集合05_Collection.toMap()应用、三个重载方法、解决重复key问题
文章目录 ①. Collectors.toMap介绍 ②. Collectors.toMap有三个重载方法 ③. 收集一下属性和对象本身 ④. 常见的java.lang.IllegalStateExc ...
- java反射 获取属性_Java反射学习-3 - 反射获取属性,方法,构造器
1 packagecn.tx.reflect;2 3 importjava.lang.reflect.Constructor;4 importjava.lang.reflect.Field;5 imp ...
- java反射 获取方法_java反射之获取类的信息方法(推荐)
本文接上文"老生常谈反射之class类的使用(必看篇)",以编写一个用来获取类的信息(成员函数.成员变量.构造函数)的工具类来讲解"反射之获取类的信息" 1.获 ...
- java see 方法_Java 反射常用方法
类名用途 Class类 代表类的实体,在运行的Java应用程序中表示类和接口 Field类 代表类的成员变量(成员变量也称为类的属性) Method类 代表类的方法 Constructor类 代表类的 ...
- java根据field名获取变量_Java反射有多强?这5大神奇功能,你需要了解!
点击上方"蓝字",关注了解更多 什么是反射? 在Java中,对于任意一个运行中的对象,可以调用该对象的任意属性和方法:已知一个类,可以获取这个类的所有属性和方法,这就是反射机制. ...
- java反射方法_java反射之方法反射的基本操作方法
本文接上文"java反射之获取类的信息方法(推荐)",利用反射(invoke)来获取一个类中的方法来执行. 1.定义一个类,包含三个名称相同,参数不同的方法 class A{ pu ...
- java測試動態方法_java反射学习
反射的核心Class类 Class类是一个特殊的类,不能手动创建,只能由jvm来创建. jvm在类加载时会为每个类生成一个与之对应的Class对象在Java堆中(且每个类只会有一个对应的Class对象 ...
- java 获取接口的注解_java反射注解妙用-获取所有接口说明
前言 最近在做项目权限,使用shiro实现restful接口权限管理,对整个项目都进行了重构.而权限管理需要用到所有的接口配置,包括接口url地址,接口唯一编码等.想要收集所有的接口信息,如果工程接口 ...
最新文章
- 如何看待导师直接说你写的论文就是垃圾?
- R语言使用trimws函数:trimws函数去除(删除、remove)字符串头尾的空格
- ​HealthKit开发快速入门教程大学霸内部教程
- MIT工程师利用人工大脑突触(忆阻器)设计了“脑芯片“,未来可用于便携式设备
- idea中配置个人注解代码模板
- [编译原理学习]词法分析
- 【Objective-C】玩转OC:正式开始自学OC
- 魅族15系统是android,魅族15系列评测:性能够用王者荣耀优化
- 【ERROR】:LNK1123: failure during conversion to COFF
- Linux内核的学习(二)
- 用Python统计新浪微博各种表情使用频率
- 用C#将PDF转换为Doc
- 数字孪生技术在智慧城市建设中有哪些应用?
- 计算机社团感恩节免费维修周策划书,【关于感恩节的活动策划】大学感恩节活动策划案_早教感恩节活动策划方案_(2)_亲亲宝贝网...
- python文本数据分析-新闻分类任务
- 心跳异常检测--使用Keras,K折交叉训练CNN一维卷积
- 苹果保修期_苹果手机怎么查看保修期 查询有效保修状态日期方法
- LK源码解析 9 总结
- 资深架构师成长路线 -- 架构师筑基必备技能
- 移植中文TTS(ekho)到ARM linux开发板
热门文章
- 记录PHP的执行时间
- 按创建日期删除指定日期之前的文件夹及文件夹下的所有子目录
- 百练 2972 确定进制 解题报告
- HDU1249_三角形切割平面
- (转)CKEditor和CKFinder在ASP.NET中的应用
- OCP学习和培训ppt汇总
- Java+selenium之WebDriver的抛出异常分析(七)
- js的跨域问题和解决办法
- 2021人工智能竞赛白皮书:1000场竞赛的深度分析
- 【方案分享】地产项目2022年新春1月系列暖场活动策划方案:新年置业,如虎添翼.pptx(附下载链接)...