1、反射概述

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

2、类的加载过程

Class类的实例表示正在运行的Java应用程序中的类和接口
每个类只会产生一个Class对象,在类加载的时候自动创建

类的加载是将Class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象

3、三种方式获取class对象

3.1通过类名.class来获取Class对象

Class clazz1 =  RunTest.class;

3.2通过对象的getClass()来获取Class对象

Class clazz2 = new RunTest().getClass();

3.3通过Class.forName()来获取Class对象

Class clazz3 = Class.forName("ver.springboot.controller.LoginController");

3.4如果是一个基本数据类型,那么可以通过Type的方式来获取Class对象

Class type = Integer.TYPE;

4、通过Class对象创建源类的对象

在完成动态加载类后,一般还要调用Class下的newInstance()静态方法来实例化对象以便操作。因此,单单动态加载类是没有用的,其最终目的是实例化对象。

Object loginController =  clazz3.newInstance();

5、通过Class对象拿到属性、方法、注解 可以进行逻辑处理

5.1拿到所有方法

Method[] methods = clazz3.getDeclaredMethods();for (int i = 0; i < methods.length; i++){System.out.println(methods[i].getName());}

5.2 拿到所有注解

Annotation[] annotations = clazz3.getDeclaredAnnotations();for (int i = 0; i < annotations.length; i++) {System.out.println(annotations[i]);}

5.3拿到所有属性

  Field[] properties = clazz3.getDeclaredFields();for (int i = 0; i < properties.length; i++) {System.out.println(properties[i]);}

Java核心特性之反射机制相关推荐

  1. Flex前端与Java服务端交互,反射机制挑大旗

    Flex作为RIA的一支,提供了非常丰富多彩的客户端实现,并且编写起来非常灵活.Java提供了强大的功能实现,与Flex结合也让Java开发穿上了华丽外衣 . BlazeDS 是LCDS的一个衍生版 ...

  2. JAVA语言中的反射机制

    在Java 运行时 环境中,对于任意一个类,能否知道这个类有哪些属性和方法?     对于任意一个对象,能否调用他的方法?这些答案是肯定的,这种动态获取类的信息,以及动态调用类的方法的功能来源于JAV ...

  3. Java的反射作用_java反射机制的作用与优点

    java的反射机制就是增加程序的灵活性,避免将程序写死到代码里, 例如: 实例化一个 person()对象, 不使用反射, new person(); 如果想变成 实例化 其他类, 那么必须修改源代码 ...

  4. java中成员变量的加载时机_工作奇谈——JAVA高级特性之反射

    一.从问题入手 最近又要面试新人,所以翻了翻以前的代码,突然发现了一个有意思的问题. 问:如下一个Student类,请实例Student并对其成员变量赋值. public class Student ...

  5. JAVA基础,注解反射机制

    文章目录 注解 (非常重要) 什么是注解 基本注解 @Override @Deprecated @SuppressWarnings @SafeVarargs @FunctionalInterface ...

  6. Java高级语法笔记-反射机制(Reflection) (1)

    反射机制:在C/C++里面是没有的. 反射机制是Java的一个非常重要的机制.一些著名的应用框架都使用了此机制. java.lang.Class它是Java语法的一个基础类,用于描述一个class对象 ...

  7. java 求正割_Java 反射机制详解

    动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如众所周知的ECMAScript(JavaScript)便是一个动态语言.除此之外如Ru ...

  8. Java基础篇:反射机制详解

    反射机制 反射机制.反射含义 1.利用反射获取类对象的三种方法 2.利用反射获取类对象的类名.方法.属性 3.利用反射获取类对象中的构造器.构造器参数类型.实例化构造器 实例化重点 类的加载方式不同 ...

  9. Java 数据交换格式反射机制SpringIOC原理分析

    数据交换格式&反射机制&SpringIOC原理分析 什么是数据交换格式? 数据交换格式使用场景 JSON简单使用 什么是JSON? JSON格式的分类 常用JSON解析框架 使用fas ...

最新文章

  1. (C++)1041 考试座位号
  2. object转换成xml
  3. IOS 面试 --- 动画 block
  4. vba 定义类_VBA|自定义类型、枚举类型和类模块及其使用
  5. 《Java程序员,上班那点事儿》序——刘博
  6. html在分页功能中如何实现当前页面的页码样式与其他页面不同_如何使用word文档?word文档使用技巧教程?...
  7. NYOJ 558 一二三
  8. oracle 提示存在lob,案例:Oracle数据库临时文件特别大 commit后lob字段使用临时表空...
  9. BZOJ 2095 [POI2010]Bridges (最大流、欧拉回路)
  10. 我是这样开始学编程的
  11. Android studio之导入新库提示Add library ‘Gradle*****@aar‘ to classpath
  12. Intel 64/x86_64/x86/IA-32处理器标志寄存器详解(6) - 64位RFLAGS
  13. HBase 的(伪)分布式安装
  14. web界面设计要素及基本设计规范
  15. 洛谷P1938 [USACO09NOV]找工就业Job Hunt(spfa) 题解
  16. 身高预测c语言代码switch,C++ ,预测身高程序
  17. matlab 层次聚类不均等巨雷,matlab层次聚类
  18. 《炬丰科技-半导体工艺》SC1/SC2蚀刻后Si表面的分析
  19. 【CozeTalk】关于“富人思维”
  20. Ajax请求成功却执行error回调方法(Ajax跨域请求问题)

热门文章

  1. 为你搜罗2006年值得推荐的日语学习软件
  2. 用Xaml搭建一个登陆页面
  3. demonstration记忆_demo(demonstration的缩写)_百度百科
  4. 史上最详细的正则表达式使用
  5. 智能科学与技术毕业设计题目100例
  6. pandas详细使用
  7. 关于光纤的基本理论(一)光纤的分类和多模阶跃折射率光纤
  8. 达梦数据库DSC集群的搭建(DM8+CentOS7.7+dmcss+dmasm)
  9. 二叉树的遍历-Recursive/Iterative/Morris
  10. 2018年河南专升本管理学真题