首页 > 其他分享 >反射

反射

时间:2023-06-25 15:13:23浏览次数:32  
标签:反射 语言 对象 获得 动态 Class

reflection反射

  • 动态语言:运行时可以改变自身结构的语言

  • 反射是java被视为动态语言的关键

反射优点

  • 实现动态创建对象和编译,体现出很大的灵活性

反射缺点

  • 对性能有一定影响

判断两个实体是不是同一个类

打印实体的hashcode

反射流程

实例化对象 -> getClass()方法(照镜子) -> 得到完整的包类名称

Class类

类加载完后会产生一个Class类型的对象,这个对象包含了完整的类的结构信息

  • 一个类只有一个Class对象

  • Class本身也是一个类,只能由系统建立对象

Class类的创建方式

  • 通过对象获得

  • forname获得

  • 通过类名.class获得

类主动引用时才会发生类的初始化

  • new一个类的对象

  • 调用类的静态成员(除了final常量)和静态方法

标签:反射,语言,对象,获得,动态,Class
From: https://www.cnblogs.com/hmzblogs/p/17502942.html

相关文章

  • go:(一)编程基础3:反射,并发
    引用:第13课:反射reflection?|课程列表|《Go编程基础(视频)》|Go技术论坛(learnku.com)1.反射:基本使用方法: 取匿名字段的信息: 通过反射修改对象操作:  2.并发: ......
  • [java] 利用反射,将对象A中与对象B中字段名相同的属性值赋予对象B
    前言:最近开发遇到了这样一个需求,前端提交的表单对应类是origin,但后端数据库表对应类是target,两者中有重合字段,origin类中有待处理字段(例如String[]ids),我想到的解决方案是将origin对象中与target对象的同名字段值赋予target,再将待处理字段拆分后赋予target进行存储。首先想到的就......
  • 详解Java反射机制
    前言反射(Reflection)是Java程序开发语言的特征之一,它允许运行中的Java程序对自身进行检查,并能直接操作程序的内部属性和方法。主要有两种方式:一种是“传统的”RTTI,它假定我们在编译时已经知道了所有的类型;另一种是“反射”机制,它允许我们在运行时发现和使用类的信息。本篇就......
  • 反射与正则表达式学习总结
    1.反射的定义(1)动态获取对象信息(2)调用对象的信息(成员变量,成员方法,构造方法)2.反射的核心编程思想以及各自的常用方法步骤1:获取class类型的对象【字节码对象】(1)Classaclass=Class.forName("");(2)ClassemployeeClass=Employee.class;(3)Employeeemployee=newEmplo......
  • 探索Python的反射与内省:代码的自我察觉
    Python中的反射与内省允许代码察觉和修改它自己。反射指的是程序在运行时可以访问、检测和修改它自己的结构或行为的一种能力。而内省则更侧重于查看对象的类型和属性,比如查看一个对象是否有某个属性或方法,以及查看对象的文档字符串等。本文将深入探讨Python的反射与内省能力。一......
  • Java—反射与注解
    ......
  • 【Java技术专题】「攻破技术盲区」带你攻破你很可能存在的Java技术盲点之动态性技术原
    @目录带你攻破你很可能存在的Java技术盲点之动态性技术原理指南编程语言的类型静态类型语言动态类型语言技术核心方向反射API反射案例介绍反射功能操作获取构造器长度可变的参数-构造方法使用反射API获取参数长度可变的构造方法获取Field域使用反射API获取和使用静态域和实......
  • 反射
    1反射定义:背景:Idea中获取某个类中的所有方法的提示就是利用反射的机制实现的反射机制定义:(1)动态获取对象信息(成员变量,成员方法,构造方法)(2)调用对象的信息(成员变量,成员方法,构造方法)2反射编程核心思想:获取class类型的对象(字节码对象)通过字节码对象获取成......
  • Java—枚举Enum中使用反射转换属性值
    关注微信公众号:CodingTechWork,一起学习进步。需求  在开发过程中,有时候需要需要根据各个枚举类中一个字段属性值转为另一个字段属性值,如根据code转为name的需求进行前端展示。本文总结一下如何通过反射简单巧妙的进行枚举属性值的互相映射。实践枚举类packagecom.test.self......
  • EventBus 源码分析 - 注解 + 反射
    EventBus源码解析随着LiveData和KotlinFlow的出现,EventBus已经慢慢过时了。不过EventBus源码的设计思想以及实现原理还是值得我们去学习的。getDefault()方法EventBus().getDefault().register(this)首先EventBus的创建用到了DCL单例模式,源码如下:publicclassEventB......