Java反射之通过反射获取一个对象的方法信息(实例代码)
作者:jingxian 发布时间:2021-08-07 15:14:46
标签:java,反射,对象
以下代码为一个工具类
package com.imooc.reflect;
import java.lang.reflect.Method;
public class ClassUtil {
public static void printClassMessage(Object obj){
//要获取类的信息,首先要获取类的类类型
Class c = obj.getClass();//传递的是哪个子类的对象,c就是该子类的类类型
//获取类的名称
System.out.println("类的名称为:"+c.getName());
/*
* Method类,方法对象
* 一个成员方法就是一个Method对象
* getMethods()方法获取的是所有的public的函数,包括父类继承而来的
* getDeclaredMethods()获取的是所有该类自己声明的方法,部位访问权限
*/
Method[] methods = c.getMethods();
//
for(int i=0;i<methods.length;i++){
//得到方法的返回值类型的类类型
Class returnType = methods[i].getReturnType();
System.out.print(returnType.getName()+" ");
//得到方法的名称
System.out.print(methods[i].getName()+"(");
//获取参数类型--》得到的参数列表的类型de类类型
Class[] paramType = methods[i].getParameterTypes();
for(Class class1:paramType){
System.out.print(class1.getName()+",");
}
System.out.println(")");
}
}
}
//output:
//类的名称为:java.lang.String
//boolean equals(java.lang.Object,)
//java.lang.String toString()
//int hashCode()
//.......
以下代码为测试类:
package com.imooc.reflect;
public class TestClassUtil {
public static void main(String[] args) {
String string = "hello";
ClassUtil.printClassMessage(string);
Integer n1 = 1;
ClassUtil.printClassMessage(n1);
}
}
截图如下:


猜你喜欢
- 本文主要给大家介绍java的InputStream 流的使用。(1)FileInputstream: 子类,读取数据的通道使用步骤:1.获取
- package dao;import java.sql.*;public class BaseDao { //oracle//&n
- 这篇文章主要介绍了Java如何把int类型转换成byte,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 前言近期有个业务需求,涉及用户付费相关的计算,需要一个日历组件,组件功能如下:仅支持从明天开始选择预定日期仅支持可选范围内的日期日期的选择是
- 本文实例为大家分享了java实现推箱子游戏的具体代码,供大家参考,具体内容如下运行示例:图形界面由swing组件构成生成地图的算法如下创建地
- Java发红包案例,供大家参考,具体内容如下首先我们需要分析这个代码的架构是什么,需要什么类组成等。我们需要建立4个类,这4个类分别是用户类
- 本文实例讲述了Android中显示GIF动画的实现代码。分享给大家供大家参考,具体如下:gif图动画在android中还是比较常用的,比如像
- 前提最近我的的朋友浏览一些网站,看到好看的图片,问我有没有办法不用手动一张一张保存图片!我说用Jsoup丫!测试网站打开开发者模式(F12)
- 1.引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务
- java超市管理系统 1.0(含源文件,后续会继续优化~)前言一个月零零散散的时间学习了java,通过这次“超市管理系统”的练习,希望可以给
- 1、效果2、简介本文主角是ItemTouchHelper。它是RecyclerView对于item交互处理的一个「辅助类」,主要用于拖拽以及
- 一、前言在spring中,定义rabbitMq的消费者可以相当方便,只需要在消息处理类或者类方法加上@RabbitListener注解,指定
- 一、什么是重量级锁当有大量的线程都在竞争同一把锁的时候,这个时候加的锁,就是重量级锁。这个重量级锁其实指的就是JVM内部的ObjectMon
- 一般的接口实现多态定义接口 interface Ipeople { void say(); }定义实现的类 public cla
- 本文实例为大家分享了Android倒计时效果的具体代码,供大家参考,具体内容如下需求:a.在后台添加时,如果是今日直播,则需要添加开始时间(
- 如何打印GC日志排查问题在工作当中,有时候我们会需要打印GC的相关信息来定位问题。该如何做呢?先来看个示例public static voi
- 关于DocumentCompleted事件,MSDN给出的解释是在文档加载完毕后执行,但是在我的程序中DocumentCompleted却被
- 本文实例讲述了Java 8新增的方法参数反射。分享给大家供大家参考,具体如下:一 点睛Java 8在java.lang.reflect包下新
- 什么是 Spring Boot 插件?Spring Boot 插件是一种扩展机制,它提供了一种简单的方式来扩展 Spring Boot 的功
- 我们经常会希望在程序中写入一些配置信息,例如版本号,以及数据库的连接字符串等。你可能知道在WinForm应用程序中可以利用Propertie