资讯专栏INFORMATION COLUMN

java反射

IntMain / 1612人阅读

摘要:反射概念反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法对于任意一个对象,都能够调用它的任意方法和属性这种动态获取信息以及动态调用对象方法的功能称为语言的反射机制。

java反射概念

JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。

使用

1.首先要获取Class对象,有三种方法

Cat cat=new Cat();
Class cat1=Class.forName("com.ncu.reflect.Cat");//Class.forName("全类名")
Class cat2=Cat.class;                           //类名.class
Class cat3=cat.getClass();                      //对象名.getclass()

2.获取实体类的字段

Field[] getDeclaredFields()                 //获取所有字段,不限修饰符
Field getDeclaredFields(String name)        //获取指定字段,不限修饰符
Field[] getFields()                         //获取所有public修饰的成员变量
Field getField(String name)                 //获取指定名称的public修饰的成员变量
//获取Cat类中所有字段,不限修饰符
Class cat1=Class.forName("com.ncu.reflect.Cat");
Field[] fields = cat1.getDeclaredFields();

3.Field类用来设置和获取字段值的方法

Cat cat=new Cat();
Field age = cat1.getDeclaredField("age");
age.set(cat,"15");                        //将cat对象age字段值设置为15
System.out.println(age.get(cat));         //获取cat对象age字段值

4.获取成员方法

跟获取字段方法雷同
Method[] getMethods()  
Method getMethod(String name, 类... parameterTypes)  
Method[] getDeclaredMethods()  
Method getDeclaredMethod(String name, 类... parameterTypes) 
//
Method eat = cat1.getMethod("eat", null);//获取一个public修饰符,无参的eat函数
eat.invoke(cat);                         //调用eat函数

5.获取构造函数

Constructor[] getConstructors()
Constructor getConstructor(类... parameterTypes)
Constructor getDeclaredConstructor(类... parameterTypes)
Constructor[] getDeclaredConstructors()

cat1.getConstructors();//获取Cat类的无参构造函数
使用场景

使用框架时有时候不知道有什么类,类有什么方法,就需要使用反射

可以将要使用的类和方法放在配置文件,不修改该类任何代码,可以创建任意其他类的对象,可以执行任意方法,达到解耦功能。只需要改变配置文件

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75573.html

相关文章

  • Java笔记-反射机制(一)

    摘要:反射机制一结合官方通过编写的反射教程,复习一下反射的知识。反射的概念反射是一种在运行时获取以及修改应用行为的一种工具。因为反射需要动态的解析类的信息,相比于非反射使用的方式要慢。反射需要获取一定的运行时权限,在特定的安全环境下不一定存在。 Java反射机制(一) 结合Oracle官方通过JDK8编写的反射教程,复习一下反射的知识。结尾篇补一个小例子。 主要内容 这次博客的主要内容就是简...

    AWang 评论0 收藏0
  • Java 反射教程

    摘要:反射非常强大和有用。另外,反射可以用在映射结果集的列名到对象的方法。本教程将深入介绍反射。本教程还将清除一些关于范型信息在运行时可用性的认知混淆。类对象使用反射时,起点通常是需要使用反射检视的类的对象。 Java反射可以在运行时检视类、接口、属性和方法,而无需在编译时知道类名、方法名等等。它也同样使用反射支持实例化新的对象、调用方法和get/set属性值。 Java反射非常强大和有用...

    klivitamJ 评论0 收藏0
  • Java反射详细介绍

    摘要:通过反射获取带参无返回值成员方法并使用设置安全检查,访问私有构造函数必须创建实例这种不行,注意和方法需要传递参数测试复制这个功能获取私有方法,同样注意和的区别赋予访问权限调用方法。 反射 目录介绍 1.反射概述 1.1 反射概述 1.2 获取class文件对象的三种方式 1.3 反射常用的方法介绍 1.4 反射的定义 1.5 反射的组成 1.6 反射的作用有哪些 2.反射的...

    ingood 评论0 收藏0
  • Java反射学习小记

    摘要:反射使用类对象提供的基本元数据,能从类对象中找出方法或字段的名称,然后获取表示方法或字段的对象。常见的反射手段有反射和反射。以之前的反射为例其中指定了方法的返回类型,其实不止如此。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的方法 生成动态代理 很多框架...

    frank_fun 评论0 收藏0
  • Reflection:Java反射机制的应用场景

    近期在维护公司项目的时候遇到一个问题,因为实体类中的 set 方法涉及到了业务逻辑,因此在给对象赋值的过程中不能够使用 set 方法,为了实现功能,所以采用了反射的机制给对象属性赋值,借此机会也了解了反射的一些具体用法和使用场景,分以下两点对反射进行分析: 反射的优势和劣势 反射的应用场景 反射的优势和劣势   个人理解,反射机制实际上就是上帝模式,如果说方法的调用是 Java 正确的打开方式...

    浠ラ箍 评论0 收藏0
  • 乐字节Java反射之一:反射概念与获取反射源头class

    摘要:一反射机制概念程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言,如,是动态语言显然,,不是动态语言,但是有着一个非常突出的动态相关机制。相关的为二获取源头重点打开权限所有类的对象其实都是的实例。 一、Java反射机制概念 程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言,如Python, Ruby是动态语言;显然C++,Java,C#不是动态语言,但是JAVA有...

    caikeal 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<