java反射机制入门3

Method对象的机制与实现

1、Method对象概述

1)java.lang.reflect.Method类是用于表示类中、接口中方法对象的类。

2)可以操作类中私有,以及公有等全部方法。

2、Method对象的常用方法介绍

方法名 释义
getName() 获得方法名称
getReturnType() 获得方法返回值类型
invoke(Object obj, Object ...args) 利用obj对象调用该方法
getParameterTypes() 获取方法所有参数类型,按照顺序返回class数组
getDeclaredAnnotations() 获取方法的全部注解
package com.rainmer.main;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

import com.rainmer.bean.Book;

public class MethodTest {
    //该方法用于获取对象的所有方法名称、返回值类型、以及参数信息
    public void show(Object ob){
        Class cl = ob.getClass();
        Method[] me= cl.getDeclaredMethods();
        for (Method mm : me) {
            System.out.println("方法名称:"+mm.getName());
            System.out.println("方法修饰符:"+Modifier.toString(mm.getModifiers()));
            System.out.println("方法返回值类型:"+mm.getReturnType());
            Class[] preType = mm.getParameterTypes();
            System.out.println("方法参数列表:");
            for(Class cll : preType){
                System.out.println(cll.getName());

            }
        }
    }

    //该方法用于使用传递过来的实体对象,获取其中的方法,饼调用
    public void showUse(Object ob){
        Class cl = ob.getClass();
        try {
            Method me = cl.getMethod("getName", null);
            me.invoke(ob, new Object[0]);//invoke援引,参数是长度为0的Object数组

            Method me1 = cl.getMethod("setName", String.class);
            me1.invoke(ob, "西游记");//ob对象调用了me1方法

            Class[] cll = {String.class, int.class};
            Method me2 = cl.getMethod("test", cll);
            Object[] obb = {"哈哈哈", 12};
            me2.invoke(ob, obb);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
    public static void main(String[] args) {
        Book bo = new Book();
        bo.setId(1);
        bo.setName("我和凤姐同居的日子");
        bo.setType("惊悚");

        MethodTest test = new MethodTest();
        test.showUse(bo);
        System.out.println(bo.getName());
    }
}

运行结果:

调用了setName方法
调用了getName方法
调用了setName方法
调用了多参数的方法
调用了getName方法
西游记

时间: 2025-01-01 21:21:27

java反射机制入门3的相关文章

java反射机制入门02

Field对象的机制与实现 1.Field对象概述 1)Java.lang.reflect.Field类,是用于表示类中.接口中属性对象的类. 2)可以操作类中私有,以及公有等全部属性和属性的信息. 2.Field对象的常用方法介绍 方法名 释义 getName() 获取属性名称 getType() 获取属性类型 get(Object obj) 取得obj对象中这个属性的值 set(Object obj,Object value) 向boj这个属性赋值value setAccessible(bo

java反射机制入门04

需要jxl.jar package com.rainmer.main; import java.io.File; import java.io.IOException; import java.util.ArrayList; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.Writable

java的反射机制入门

理解Java的反射机制对学习Java框架有很大帮助,比如Spring框架的核心就是使用Java反射实现的,同时对做一些Java底层操作也会有帮助,比如字节码操作.自定义注解等. 什么是反射 Java反射说的是在运行状态中,对于任何一个类,我们都能够直到这个类有哪些方法和属性.对于任何一个对象,我们都能够对它的方法和属性进行调用.这种动态获取对象信息和调用对象方法的功能就是Java的反射机制. 反射的三种方式 反射其实就是获取类的字节码文件,也就是.class文件,那么我们就可以通过Class这个

Java反射机制大神必学系列之 ,高级与低级的差别在哪里?

Java反射机制大神必学系列之 ,高级与低级的差别在哪里?java学习爱好者 2019-05-20 19:08前言今天介绍下Java的反射机制,以前我们获取一个类的实例都是使用new一个实例出来.那样太low了,今天跟我一起来学习学习一种更加高大上的方式来实现. 正文Java反射机制定义 Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制.

Java反射-初步入门

Java反射-初步入门 学反射先了解什么是反射. 百度百科:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 上面提到了类和对象,先了解什么是类和对象. java中类: 1.抽象描述 类:类是客观存在的.抽象的.概念东西. 对象:对象是具体的,指一个具体的东西. 打比方:饮料是一个类,可乐.雪碧就是对象. 总结一句话:类是对象的模版,对象

java反射机制(一)—— 利用反射机制实例化对象

一.Java有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是我们可以于运行时加载.探知.使用编译期间完全未知的classes.换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体.或对其fields设值.或唤起其methods.(度娘文库是这么说的) 二.这篇文章主要介绍一下通过反射机制去实例化一个类的对象,然后调用其方法.本文主要介绍两种方式,第一种就是通过构造函数来实例化,第二种就是通过Cl

【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】

方法1:通过get()方法获取属性值 package com.sxd.test.controller; public class FirstCa{ private Integer num; private String name; private Boolean flag; public Integer getNum() { return num; } public void setNum(Integer num) { this.num = num; } public String getNam

Java 反射机制

使用 Java 反射机制可以在运行时期检查 Java 类的信息,检查 Java 类的信息往往是你在使用 Java 反射机制的时候所做的第一件事情,通过获取类的信息你可以获取以下相关的内容: Class 对象 类名 修饰符 包信息 父类 实现的接口 构造器 方法 变量 注解 除了上述这些内容,还有很多的信息你可以通过反射机制获得,如果你想要知道全部的信息你可以查看相应的文档 JavaDoc for java.lang.Class 里面有详尽的描述. 在本节中我们会简短的涉及上述所提及的信息,上述的

Java反射机制浅析

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. "程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言".从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言.但是JAVA有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是我们可以于运行时加载.探知.使用