美文网首页
1、反射

1、反射

作者: wqjcarnation | 来源:发表于2023-06-28 09:58 被阅读0次

https://www.sczyh30.com/posts/Java/java-reflection-1/
三、反射的基本运用
上面我们提到了反射可以用于判断任意对象所属的类,获得 Class 对象,构造任意一个对象以及调用一个对象。这里我们介绍一下基本反射功能的使用和实现(反射相关的类一般都在 java.lang.relfect 包里)。

1、获得 Class 对象
方法有三种:

(1) 使用 Class 类的 forName 静态方法:

public static Class<?> forName(String className)

2、通过反射来生成对象主要有两种方式。

使用Class对象的newInstance()方法来创建Class对象对应类的实例。
Class<?> c = String.class;
Object str = c.newInstance();
4、获取方法
获取某个Class对象的方法集合,主要有以下几个方法:

getDeclaredMethods 方法返回类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。

public Method[] getDeclaredMethods() throws SecurityException
getMethods 方法返回某个类的所有公用(public)方法,包括其继承类的公用方法。

public Method[] getMethods() throws SecurityException
getMethod 方法返回一个特定的方法,其中第一个参数为方法名称,后面的参数为方法的参数对应Class的对象。

public Method getMethod(String name, Class<?>... parameterTypes)

7、调用方法
当我们从类中获取了一个方法后,我们就可以用 invoke() 方法来调用这个方法。invoke 方法的原型为:


public Object invoke(Object obj, Object... args)
        throws IllegalAccessException, IllegalArgumentException,
           InvocationTargetException

下面是一个实例:


public class test1 {
    public static void main(String[] args) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
        Class<?> klass = methodClass.class;
        //创建methodClass的实例
        Object obj = klass.newInstance();
        //获取methodClass类的add方法
        Method method = klass.getMethod("add",int.class,int.class);
        //调用method对应的方法 => add(1,4)
        Object result = method.invoke(obj,1,4);
        System.out.println(result);
    }
}
class methodClass {
    public final int fuck = 3;
    public int add(int a,int b) {
        return a+b;
    }
    public int sub(int a,int b) {
        return a+b;
    }
}

相关文章

  • 1 反射

    1、什么是反射?反射就是把Java类中的各种成分映射成一个个的java对象。例如,一个类有:成员变量,方法,构造方...

  • Kotlin反射(1)反射API

      反射(Reflection) 是程序的自我分析能力,通过反射可以确定类中有哪些函数以及属性。反射机制在一般的应...

  • 网络养生课学习笔记12

    5反射疗法《如何调理咳嗽》 1、处方: (1)心脏反射区 (2)咽激、气管、支气管、肺反射区 (3)咽喉反射区 (...

  • 反射

    1.反射是什么?反射的定义,概念 2.为什么要学反射? 3.怎么使用反射?反射的使用

  • Java中的反射|SquirrelNote

    前言 本篇简介: 反射概述 反射具体功能实现 Android中的反射应用 一、反射(Reflection)概述 1...

  • Java反射-1(理论)

    Java反射-1(理论)Java反射-2(技巧) 什么叫做反射?反射有什么用?这篇文章会娓娓道来。咱们就先从反射官...

  • 第11章 2.反射

    1、 方法和类型的反射 2、结构的反射

  • Java反射1

    Class类 类是对象,是java.lang.Class类的实例对象。 Full full1=new Full()...

  • 反射 -1 概述

    Java反射机制 在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的...

  • java 反射进阶

    1.java反射基础 2.java反射进阶 上一节介绍了反射基础,本节介绍更深入的反射概念。 1.获取不到Clas...

网友评论

      本文标题:1、反射

      本文链接:https://www.haomeiwen.com/subject/ngdoydtx.html