反射 方法反射的操作

方法的反射

1、如何获取某个方法

  方法的名称和参数列表才能唯一确定某一个方法

2、方法反射的操作

  method.invoke(对象,参数列表);

3、示例

 1 package com.reflect;
 2
 3 import java.lang.reflect.Method;
 4
 5 /**
 6  * @author 作者:方o丈
 7  * @version 创建时间:2018年6月9日 下午11:06:27 类说明:方法反射的操作
 8  */
 9 public class MethodReflect {
10
11     public static void main(String[] args) {
12         // 要获取方法,就得先获取类的信息,要获取类的信息,就得先获取类的类类型
13         A a = new A();
14         Class c = a.getClass();
15         try {
16             // 获取方法对象,由方法名和参数列表来确定某一方法
17             Method m1 = c.getMethod("test");
18             Method m2 = c.getMethod("test", new Class[] { int.class, int.class });
19             /**
20              * 方法反射的操作。
21              * 以前方法的调用:a.test(a, b)
22              * 反射操作:是用Method对象来进行方法调用
23              * invoke(Object obj,Object...(可变参数列表,三种传参方式))
24              */
25             m1.invoke(a);
26             m2.invoke(a, 10, 20);
27             m2.invoke(a, new Object[] { 10, 21 });
28
29         } catch (Exception e) {
30             e.printStackTrace();
31         }
32     }
33 }
34
35 class A {
36
37     public void test() {
38         System.out.println("hello world!");
39     }
40
41     public void test(int a, int b) {
42         System.out.println(a + b);
43     }
44
45     public void test(String a, String b) {
46         System.out.println(a + b);
47     }
48 }

运行结果:

原文地址:https://www.cnblogs.com/fangzhang/p/9162047.html

时间: 2024-10-10 02:33:53

反射 方法反射的操作的相关文章

[javaSE] 反射-方法的反射

1.如何获取某个方法 方法的名称和方法的参数列表才能唯一决定一个方法 2.方法反射的操作 method.invoke(); package com.tsh.reflect; import java.lang.reflect.Method; public class ReflectDemo { public static void main(String[] args) { P p=new P(); Class c=P.class; try { Method method=c.getDeclare

C#反射技术的简单操作(读取和设置类的属性)

public class A { public int Property1 { get; set; } } static void Main(){ A aa = new A(); Type type = aa.GetType();//获取类型 System.Reflection.PropertyInfo propertyInfo = type.GetProperty("Property1"); propertyInfo.SetValue(aa, 5, null);//给对应属性赋值 i

Java反射理解(五)-- 方法反射的基本操作

Java反射理解(五)-- 方法反射的基本操作 方法的反射 1. 如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法 2. 方法反射的操作 method.invoke(对象,参数列表) 举例 具体操作请看下面举例: import java.lang.reflect.Method; class A{ public void print(){ System.out.println("helloworld"); } public void print(int a,int b){

通过Relect反射方法创建对象,获得对象的方法,输出对象信息

package reflects; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import io.Person; //通过Relect反射方法创建对象,输出对象信息 public class ReflectDemo1 { public static void main(String[] args) { try { // 1.获得目标对

Java进阶之reflection(反射机制)——反射概念与基础

反射机制是Java动态性之一,而说到动态性首先得了解动态语言.那么何为动态语言? 一.动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化.比如常见的JavaScript就是动态语言,除此之外Ruby,Python等也属于动态语言,而C.C++则不属于动态语言. 二.Java是动态语言吗? 从动态语言能在运行时改变程序结构结构或则变量类型上看,Java和C.C++一样都不属于动态语言. 但是JAVA却又一个非常突出的与动态相关的机制:反射机制.

反射——Java反射机制

反射概述 什么是反射? ①   反射的概念是由Smith在1982年首次提出的,主要指程序可以访问.检测和修改它本身状态或行为的一种能力. ②   JAVA反射机制是在运行状态中,对应任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种状态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制. ③   简单的说,反射机制指的是程序在运行时能够获取自身的信息.在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息.包括其访问

java反射(四)--反射与简单java类

一.传统简单java类 简单的java类主要是由属性所组成,并且提供有相应的setter以及getter的处理方法,同时简单java类最大的特征就是通过对象保存相应的类的属性内容,但是如果使用传统的简单java类的开发,那么也会面临非常麻烦的困难: 1 class Emp{ 2 private String ename; 3 private String job; 4 5 public void setEname(String ename) { 6 this.ename = ename; 7 }

什么是反射?反射有什么用处

什么是反射?反射有什么用处? 1. 什么是反射? “反射(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为.”这个概念常常会和内省(Introspection)混淆,以下是这两个术语在Wikipedia中的解释: 内省用于在运行时检测某个对象的类型和其包含的属性: 反射用于在运行时检测和修改某个对象的结构及其行为. 从它们的定义可以看出,内省是反射的一个子集.有些语言支持内省,但并不支持反射,如C++. 内省示例:instanceof 运算符用于检测某个对象是否属于特定的类

C# 反射Reflection——反射反射程序员的快乐

一.什么是反射 反射Reflection:System.Reflection,是.Net Framework提供的一个帮助类库,可以读取并使用metadata. 反射是无处不在的,MVC-Asp.Net-ORM-IOC-AOP 几乎所有的框架都离不开反射 如下图是程序执行的过程,高级语言经过编译器编译得到dll/exe文件,这里的文件可以跨平台使用,编译后的文件中其实包括了metadata元数据(数据清单,描述了DLL/exe里面的各种信息)和IL(也是一种面向对象语言,但是不太好阅读)在经过C