Java入门14(反射)

这篇具有很好参考价值的文章主要介绍了Java入门14(反射)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

反射

🌟约定优于配置,配置优于实现

​ 将类当作一个对象进行处理,这就是反射

IOC 控制反转

​ 在需要使用对象的时候,开发者不需要自己new,只需要通过配置文件或者注解,对象可以由代码自行创建,根据配置文件的变更,创建不同的对象,调用不同的方法

获取类对象的方式

​ ⭐在JVM中,类在运行之前,需要先借助ClassLoader类进行类加载,想加载哪一个类,就必须先加载这个类的类对象,一个 JVM 对应一个 ClassLoader 类,每一个类在一个JVM中也只有一个类对象,无论怎么获取类对象,获取的类对象一定是同一个文章来源地址https://www.toymoban.com/news/detail-589996.html

  1. 通过.class直接获取,这种方法不会加载类中的静态成员
  2. 通过类的路径获取
  3. 通过该类对象所对应的类的实例获取
// 通过.class直接获取
Class<Studnet> sClass = Student.class;
// 通过类的路径获取
Class<Student> sClass = (Class<Student>) Class.forName("com.iweb.demo01.Student");
// 通过该类对象所对应的类的实例获取
Class<Student> sClass = (Class<Student>) new Student().getClass();

根据类对象去获取构造方法的反射对象

// 获取无参构造方法的反射对象
// 无参构造方法,不需要添加参数
Constructor<Student> studentConstructorNoArgs = studentClass.getConstructor(); 
// 借助构造器对象,可以实现实例化类对象
Student s = studentConstructorNoArgs.newInstance();
// 访问对象。。。

// 获取有参构造方法
// 有参构造方法,需要添加参数类型的反射对象
Constructor<Student> studentConstructorAllArgs = studentClass.getConstructor(String.class,Integer.class);
// 借助构造器对象,可以实现实例化类对象
Student student = studentConstructorAllArgs.newInstance("robot01",12);
// 访问对象

创建方法所对应的反射现象

// 创建方法所对应的反射对象(无参)
Method getNameMethod = studentClass.getMethod("getName");
// 借助方法的反射对象,调用方法
String result = (String) getNameMethod.invoke(student);

// 创建方法所对应的反射对象(有参)
Method setNameMethod = studentClass.getMethod("setName", String.class);
// 借助方法的反射对象,调用方法
setNameMethod.invoke(student,"robot02");
System.out.println(student);

到了这里,关于Java入门14(反射)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中的Reflection(反射)、暴力反射

    1.1 反射的出现背景 Java程序中,所有的对象都有两种类型: 编译时类型 和 运行时类型 ,而很多时候对象的编译时类型和运行时类型 不一致 。 例如: 如上 :某些变量或形参的声明类型是 Object 类型,但是程序却需要调用该对象运行时类型的方法,该方法不是Object中的方法

    2024年02月04日
    浏览(32)
  • 【Java反射】Java利用反射获取和设置对象某属性的值

    通用工具类: 测试:

    2024年02月02日
    浏览(40)
  • Java笔记040-反射/反射机制、Class类

    目录 反射(reflection) 一个需求引出反射 反射机制 Java反射机制原理图 Java反射机制可以完成 反射相关的主要类 反射机制的优点和缺点 反射调用优化-关闭访问检查 Class类 基本介绍 代码解释部分 类加载方法 应用实例:Class02.java 获取Class类对象 代码解释部分 哪些类型有Class对象

    2024年02月09日
    浏览(36)
  • java通过反射创建反射对象三种的方法

    目录 前言: 代码部分: computer类: 1.类名.class创建反射对象: 2.对象.getclass创建反射对象: 3.Class.forName(\\\"\\\")创建反射对象: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态

    2024年02月14日
    浏览(31)
  • 【Java基础】深入理解反射、反射的应用(工厂模式、代理模式)

    Java 反射机制是指在 运行时动态地获取和操作类的信息、调用对象的方法和访问对象的属性的能力 。通过反射,可以在程序运行时分析和修改类的结构、行为和状态。 Java 反射机制提供了以下功能: 获取类的信息:可以获取类的名称、修饰符、父类、实现的接口等。 创建对

    2024年02月09日
    浏览(42)
  • 【Java 基础篇】Java 反射详解

    Java反射是指在运行时动态地获取类的信息,并可以通过该信息来操作类或对象。通过反射,我们可以在运行时获取类的字段、方法、构造函数等信息,并能够动态地创建对象、调用方法、访问和修改字段的值。本文将详细介绍Java反射的概念、原理和使用方法,并提供一些示

    2024年02月09日
    浏览(27)
  • 反射机制-体会反射的动态性案例(尚硅谷Java学习笔记)

    // 举例01 public class Reflect{ } 案例:榨汁机榨水果汁,水果分别有果(com.reflect.Apple)、香蕉(Banana)、桔子(Orange)等。 效果如图。 提示: 1、声明(Fruit)水果接口,包含榨汁抽象方法: void squeeze(); /skwi:z/ 2、声明榨汁机(Juicer),包含运行方法: public void run(Fruit f),方法体中,调用f的榨汁方

    2024年02月11日
    浏览(36)
  • 【Java反射】反射获取Class、Constructor、Field、Method的方式

    如下是相应的获取方式 总结: 首先获取对象的Class,然后通过getXXX方法获取,带Declared可以通过setAccessible获取私有XXX

    2024年02月02日
    浏览(34)
  • 【Java】反射简介,利用反射打印一个类当中的构造函数,方法和属性。

       📝个人主页:哈__ 期待您的关注  我想要通过反射来打印如下效果的类信息。 Student类如下代码所示。  你是否有思路?如果你不了解反射的话,我来给大家简单的介绍一下反射的使用方法。 1、Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操

    2024年04月10日
    浏览(33)
  • Java_单元测试、反射

    1.1 单元测试快速入门 所谓单元测试,就是针对最小的功能单元,编写测试代码对其进行正确性测试。 我们想想,咱们之前是怎么进行测试的呢? 比如说我们写了一个学生管理系统,有添加学生、修改学生、删除学生、查询学生等这些功能。要对这些功能这几个功能进行测试

    2024年01月18日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包