JAVA反射技术的运用

全面掌握Java反射技术课程 本文还有配套的精品资源,点击获取 简介:Java反射技术是一项允许程序在运行时检查和操作其他类、接口、对象和方法的强大工具。本培训课程深入讲解了Java反射机制的基础知识,包括Class类的使用、类结构的获取、高级反射操作、动态代理机制以及反射在工厂设计模式中的应用。课程旨在帮助开发者掌握Java的动态特性,提升编程的灵活性和扩展性。 1. Java反射技术概述 ... 阅读详情
目的
  • 测试目的:
  • 测试如何将一个只知道类名里面的所有属性变量 所有方法 所有构造器访问出来
  • 提示:利用新型for循环
需要访问的Property类
package myreflect.reflect1;

public class Property {
    //公有的账户号
    public int propertyNum;
    //私有的财产名字
    private String propertyName = "马云的财产" ;
    //富有不富有
    private String property = "norach";
    //私有参数
    private final static int CONSUMMER=0;

    //构造器
    public Property() {
    }

    public Property(int propertyNum, String propertyName, String property) {
        this.propertyNum = propertyNum;
        this.propertyName = propertyName;
        this.property = property;
    }

    //打印所有属性的共有方法
    @Override
    public String toString() {
        return "Property{" +
                "propertyNum=" + propertyNum +
                ", propertyName='" + propertyName + '\'' +
                ", property='" + property + '\'' +
                '}';
    }

    public int p0(int a){
        System.out.println("这是Property中的有参数有返回值的私有方法p1");
        return 0;
    }

    private void p1(){
        System.out.println("这是Property中的无参数无返回私有方法p1");
    }

    private int p2(int a){
        System.out.println("这是Property中的有参数有返回值的私有方法p2");
        return a;
    }

    public static void p3(){
        System.out.println("这是Property中的无参数无返回值静态方法p3");
    }
}
Driver01测试文件
package myreflect.reflect1;

import org.junit.Test;

import java.lang.reflect.Field;

public class Driver01 {
    /**
     *  测试目的:
     *    测试如何将一个只知道类名里面的所有属性变量 所有方法  所有构造器访问出来
     *  提示:利用新型for循环
     */
    //获取所有的属性值(先不改变值)
    @Test
    public void getAttribute() throws IllegalAccessException, InstantiationException {
        // 第一步:获取字节码对象
        Class cla = new Property().getClass();
        // 第二步:实例化对象
        Property property = (Property) cla.newInstance();
        // 第三步:拿到属性的字节码
        Field[] fields = cla.getDeclaredFields();
        // 第四步:读取该类里面所有的属性变量
        for (int i = 0; i < fields.length; i++) {
            fields[i].setAccessible(true);
            Object o = fields[i].get(property);
            System.out.println(fields[i].getName()+"的值是"+o);
        }
        /**
         *  在利用属性字节码去利用for循环去去读取某一个类的所有属性变量时,
         *  如果不设置属性值的访问权限为true时,那么可以通过field.getName()方法读取所有该类属性的
         *  属性变量名(不管是私有的还是公有的),但想要获得所有的(公有和私有的)属性值,就必须设置访问权限
         *  为true
         *  注意:一个属性值只能控制自己的所有属性方法,也就是说,不能利用属性字节码数组这个整体去调用
         *        Field属性包下的属性变量操作;
         * 那什么,我不会用新型for循环去获得所有类的属性变量
         */
           }
}
测试结果

在这里插入图片描述

SAP入门技术分享四:模块化程序 SAP入门技术分享三:模块化程序 阅读详情

相关推荐

燧原科技云燧ESL64-O超节点:国产AI芯片与OEX光互联架构解析

分布式AI训练通过将计算任务拆分到多个节点并行执行来加速模型训练,其核心原理涉及数据并行和模型并行等策略。在技术价值层面,分布式训练能显著提升大规模深度学习任务的效率,但传统GPU集群常因网络通信瓶颈导致性能受限。OEX光互联架构作为解决通信瓶颈的关键创新,采用硅光技术实现高带宽、低延迟的节点内互联,优化了AI训练中的集合操作。这种硬件级优化特别适用于千亿参数大模型训练和科学计算等场景,能有效降低AI集群的总体拥有成本(TCO)。云燧ESL64-O超节点正是基于国产自研AI芯片与OEX架构的集成方案,为大规

weixin_29071809的博客 370

『Java面经』简述 Java 的反射机制及其应用场景

文章目录1、前言2、反射是什么?3、为什么要有反射?4、小试牛刀4.1 获取 Class 对象4.2 获取成员变量4.3 获取构造方法4.4 获取非构造方法5、实践出真知6、微信关注『方糖算法』 1、前言 反射(Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序对自身进行检查,并能直接操作程序的内部属性和方法。 反射是所有注解的实现原理,尤其在框架设计中。 常见的面试考点如下: 获取 Class 对象 获取类中的所有字段 获取类中的所有构造方法 获取类中的所有非构造方法 现

方糖世界 2636

Ubuntu22环境下Xinference与RAGFLOW集成:构建高效rerank模型服务【实战指南】

本文详细介绍了在Ubuntu22.04系统上,通过部署Xinference模型推理服务来加载bge-reranker-base等rerank模型,并将其与RAGFLOW框架集成的完整实战指南。该方案实现了模型服务的解耦与灵活管理,有效提升RAG系统的检索精度与答案相关性,并提供了从环境配置、服务启动、网络连接到性能调优及常见问题排查的全流程解决方案。

pluto的博客 500

【Java 反射的使用】

Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。

qq_64317046的博客 1462

【OpenVINO】OpenVINO C# API 常用 API 详解与演示

在本文中我们基于模型推理流程,演示了OpenVINO C# API使用方法,并和OpenVINO C++API进行了对比,展示了OpenVINO C# API与C++API在使用的区别,这也对使用过C++ API的开发者十分友好,上手会十分容易。在本文中我们只展示了基础的模型推理流程代码,也对各个API进行了测试,针对其他比较高级的API方法,我们后续会继续进行测试其他API方法,向各位开发者展示其用法。

grape_yan的博客 1539

嵌入式调光控制库:轻量级软启/渐变/记忆逻辑实现

调光控制是智能照明系统的核心基础功能,涉及亮度调节、人机交互与电气安全多重需求。其底层原理依赖于对相位角或PWM占空比的精确时序控制,并需融合软启动、渐变过渡、状态记忆等工程化逻辑。这类轻量级调光行为逻辑层,不直接操作硬件寄存器,而是以确定性、无动态内存、可配置的方式封装用户意图到目标亮度值(0–100%)的映射过程,显著提升产品鲁棒性与跨平台复用能力。广泛应用于TRIAC交流调光、LED直流PWM驱动及DALI/Matter等智能照明协议网关中,尤其适合资源受限的Cortex-M系列MCU和FreeRTO

weixin_28949937的博客 579

java之反射技术及其应用

翻阅了很多资料想查看一个比较通俗易懂的关于java反射机制的理解,但是想要从概念中去理解一项技术,可能有点困难,所以先将理论型知识贴出来,后面,慢慢来理解。 反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。—-《百度百科》 注意:要理解java的反射机制,先

williamHappy的博客 649

使用mne包来对脑电数据进行预处理(一)

MNE(MNE-Python)是一个用于处理脑电(EEG)、磁图(MEG)和其他神经科学数据的Python库。它提供了丰富的功能,包括数据加载、预处理、分析和可视化,旨在帮助研究人员和神经科学家更轻松地进行脑电数据的处理和分析。在本文中,我们使用mne来对不同的格式的脑电数据集进行数据读取。

m0_71596228的博客 4303

Java反射技术及其应用

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992我们一起学Java! 翻阅了很多资料想查看一个比较通俗易懂的关于java反射机制的理解,但是想要...

chuifuhuo6864的博客 150

数据结构课程设计--基于知识图谱的中医食疗数据管理与应用

【代码】数据结构课程设计--基于知识图谱的中医食疗数据管理与应用。

M_inherit的博客 565

华为 MetaERP 总账模块依托 “交易即核算” 的事件驱动架构,与 Oracle EBS 相比,更强调业务事件自动触发财务动作、实时数据同步和智能规则引擎,实现业务与财务的深度融合

华为MetaERP总账模块采用"交易即核算"架构,相比Oracle EBS实现了三大突破:1)业务事件自动触发财务动作,如采购收货自动生成暂估凭证;2)业务财务数据实时同步,支持即时分析;3)内置智能规则引擎,实现自动匹配、核销和结转。该模块覆盖采购、销售、资产、薪酬等全业务场景,支持多维核算和关联交易自动抵消,显著提升核算效率与准确性。其中采购暂估、销售结转等场景实现全自动化处理,较EBS减少80%手工操作。

金牌架构师 222

Java 反射技术及其应用

反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 下面介绍下反射在Java项目中的使用Class类的使用概念理解在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对

博客已搬家,请访问新博客https://kswapd.cn,提供更好的阅读体验。 456

使用R语言读取和处理CSV数据集

查看数据集的结构str(data)# 查看数据集的摘要统计信息str()函数将显示数据集的结构信息,包括变量名称、类型和前几行的值。summary()函数将提供数据集的摘要统计信息,如均值、中位数、最小值、最大值等。

CyberGenius的博客 3856

java反射技术一篇文章弄懂

将类的各个组成部分封装为其他对象,这就是反射机制。反射的好处:1.可以在程序运行过程中,操作这些对象。2.可以解耦,提高程序的可扩展性。如下图所示,java代码在计算机中经过了几个阶段。源码变成为.class,然后通过类加载器,进入内存,生成Class类。

qq_39126115的博客 1172

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java反射技术

java反射专题

m0_50552745的博客 315

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Java学习之反射技术

反射技术也算得上是Java基础知识里较高新的一项技术了(但反射不是java5的新特性),犹记得老师课上说过,当反射遇到Private时,会让我们深深地领悟到啥叫一“招”回到解放前。 如果将Java语言中的各种技术比喻成江湖上纷繁的门派,反射技术的存在总是给人一种隐秘而强悍的幽灵般的感觉,它让限制不再,让规矩死亡,颇有几分C中的goto给人的第一印象。今天讨论反射,首先从下面一个题开刀吧! ArrayList list = new ArrayList(); 如何在这个泛型为Integer的ArrayList中

u010190187的专栏 521

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统(4)

运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统——写给Java初学者 二、             自动化测试中的几个主要的类在这个设想的自动化测试系统中,执行一个自动化测试的步骤(Step),总是从读取“测试步骤XML配置文件”开始,然后初始化/构造一些测试对象;最后根据XML配置文件定义的测试步骤/操作,来自动地执行测试!并且,将根据给出

928

反射技术总结

反射技术总结1 反射技术2 Class对象3 Field类3.1 例子4 Method类5 反射的应用 1 反射技术 运行时动态访问对象属性方法的技术 2 Class对象 类的实例化: 之前:Car c = new Car(); 现在:clazz.newInstance(); // 创建对象 public class ClassDemo { static class InnerClass{ public InnerClass() { System.out.println("我是Inne

weixin_45351103的博客 452

Java中反射的常用方法及总结

       转载自:https://blog.youkuaiyun.com/it666dhw/article/details/78654557             反射,是在java中非常有用,在框架中也经常接触的一种方法,所以反射是在开发中必须会的东西。        所谓反射,就是给你一个XX.class文件,你通过反射方法,能够拿到该XX类相关的所有资源,比如该类所在位置,通过该类创建一个对象x,...

huakaihualuo012的博客 253

java反射怎么用_如何使用JAVA反射/JAVA反射实例

JAVA反射技术,在平时我们的开发中虽然很少会用到例如读取配制文件可能就用到这个技术,但在我们所使用的框架源码中是经常会用到的。1、常用举例:package com.test.instancedemo;class X{};public class GetClassDemo02{public static void main(String args[]){Class> c1 = null...

weixin_34524593的博客 398

运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统(5)

运用类的思想和Java的反射(Reflect)技术,构建出一个灵活、合理的系统——写给Java初学者 三、             对执行自动化测试的设计现在,我们来分析前面提到的几个抽象类:WebAction(一个代表与Web交互方式的抽象类)、Validate(一个代表验证的抽象类)和Condition(一个代表验证条件的抽象类)。首先,我们来分析一下WebActi

823

【注解】浅谈java注解

前言:Annotation中文释义注解之意。 Java注解用于为Java代码提供元数据。 元数据是指用来描述数据的数据,通俗一点,就是描述代码间关系,或者代码与其它资源(例如数据库表)之间内在联系的数据。在一些技术框架中,如Struts、hibernate就不知不觉用到了元数据。对于Struts来说,元数据指的是struts-config.xml;对hibernate来说就是hbm文件。以上阐...

applehub的博客 320

Java之反射、枚举、内省、注解

一:反射技术:          1.概述:其实就是动态加载一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象,                        并将字节码文件中的内容都封装成对象,这样便于操作这些成员。简单说:反射技术可以对一个                        类进行解剖,解剖后的属性、方法都为对象            2.反射的好处:大大的

AlanHand的专栏 3038

Java反射理解

反射----1 反射机制 反射的应用场景 Tomcat服务器 1.Java的反射机制 (1).反射和类的关系 在程序运行状态中,对任意一个类(指的是.class文件),都能够知道这个类的所有的属性和方法。 (2).反射和类对象的关系 反射对于某个类的一个对象,都能够调用它的任意一个方法和属性。 (3).Java反射机制(基于(1) 和 (2)) [1]...

SenseLo的博客 371

Java中的反射

概述 反射,可以在运行时期动态创建对象;获取对象的属性、方法; 类public class Admin { // Field private int id = 1000; private String name = "匿名"; // Constructor public Admin(){ System.out.println("Admin.Ad

格锅的博客 344

【Java技术】Java 反射的再次学习

Java 反射的再次学习 1 概述 这段时间,又用到了java的反射技术,结果发现如此的陌生,结果在极客学院上搜到一个视频,感觉不错,就写个博客再记录一下吧。 2 Java反射 都说反射实际上java本身留下的后门,因为只要拿到了类的名称,就相当于在运行时拿到了类的所有信息,包含私有函数与变量、其父类中的方法。 2.1 测试用例 <pre name="code" c...

卦星的专栏 903
上一篇: Jdbc中连接池环境的配置—— c3p0连接池jar包
下一篇: html网络编程技术
惠溪崽崽
博客等级 码龄7年 4粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值