注解&反射学习笔记

shopro 商城,2025年新申请的微信支付提示失败,支付提示 Get Wechat Public Cert Error 问题的修复办法 shopro 商城,最近新申请的微信支付商户 支付提示 Get Wechat Public Cert Error 问题的修复办法 阅读详情

1、注解的作用域及使用方式

//表示我们的注解可以使用在那些地方
@Target(value={ElementType.METHOD,ElementType.TYPE})
//表示注解在什么地方有效。  RESOUT 源码 < CLASS 类 < RUNTIME运行时
@Retention(value=RetentionPolicy.RUNTIME)
@Documented //表示是否将我们的注解生成在JAVAdoc中
@Inherited //子类可以继承父类的注解
public @interface MyAnnotation{
    String name() default "yog"; //如果不设置默认值,使用时必须添加参数.
    String[] school() default {"清华","厦大"};
}
​
eg: 
//@MyAnnotation(name="yog") 当自定义的注解没有设置默认值时的使用方式。
@MyAnnotation
public class test{
    @MyAnnotation   
    public void testMenthod(){}
}

反射学习笔记

学前掌握

1、动态语言:是一类运行时可以改变结构的语言,如函数、对象(js、Object-C、C##)

function f(){
    var x = "var a=2; b=3; alert(a+b);"
    evel(x) // 以代码形式执行x
}

2、静态语言:与动态语言相反。 java、 C

3、反射相关的API

* java.lang.Class 代表一个类(对象)
* java.lang.reflect.Menthod 代表类的方法
* java.lang.reflect.Field 代表类的成员变量
* java.lang.reflect.Constructor 代表类的构造器

1、概念

1、Reflection反射 是java被视为动态语言的关键,反射机制允许程序在执行期借助与Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。

Class c = Class.forName("java.lang.String")

2、加载完类之后,在对内存的方法区中就产生了一个Class类型的对象(一个类只有一个对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一个镜子,透过镜子可以看到这个类的结构,所以称为反射:

  • 正常方式: 引入需要的包类名称 --> 通过new实例化 --> 取得实例化对象

  • 反射方式:实例化对象 --> getClass()方法 -->取得完整的包类名称

2、实际操作

public class Test{
    //通过反射获取类的Class对象
    Class user1 = Class.forName("com.yog.User");
    Class user2 = Class.forName("com.yog.User");
    user1.setName("yog");
    user1.getName();
    user2.setName("yog");
    user2.getName();
  /**
   * 知识点:
   * 1、因为一个类在内存中只有一个Class对象 
   * 2、一个类被加载后,类的整个结构都会被封装在Class对象中。
   */
  // user1 == user2 结果为:true  
}
class User{
    public String name;
    public int age;
    ...get
    ...set
    ...toString()
}
​
​

3、类初始化

  • 主动调用 new XXclass();会触发父类的初始化。

  • 通过反射被动加载,也会触发父类的初始化。

  • 静态方法调用,不会触发父类的初始化。

Python 静态导入与动态导入 python中模块的静态导入 与 动态导入(运行时指定模块),以及具体对应示例。 阅读详情

相关推荐

VirtualBox虚拟机上ubuntu系统安装问题记:显示画面太小、启动就异常退出等

报错:Failed to load R0 module D:/VMMR0.r0: The path is not clean of leading double slashes: ‘D:/VMMR0.r0’ (VERR_SUPLIB_PATH_NOT_CLEAN).解决方法特别简单,就是安装VIrtualBox的时候不要安装在CDE等盘根目录下。首先VirtualBox的下载安装过程是比较简单的,此处就不赘述了。然后E盘下新建个目录,安装到这个目录下就可解决。

qq_42595610的博客 2826

Java注解&枚举&反射学习笔记

注解 注解其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。 通过使用注解,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。 代码分析工具、开发工具和部署工具可以通过这些补充信息进行验证或者进行部署。 使用 使用注解时要在其前面增加@符号,并把该注解当成一个修饰符使用。用于修饰它支持的程序元素。 Annotation 可以像修饰符一样被使用,可用于修饰包,类,构造器,方法,成员变量,参数,局部变量的声明,这些信息被保存在Annotation的"name=v

weixin_44736938的博客 216

OpenClaw + Ollama 本地大模型部署教程:彻底告别Token焦虑

OpenClaw + Ollama 本地大模型部署教程:彻底告别Token焦虑

leaning_java的博客 1229

枚举&注解&反射(学习笔记)

枚举 格式 //权限修饰符 enum 枚举名称 { 实例1,实例2,实例3,实例4; } public enum Level { LOW(30), MEDIUM(15), HIGH(7), URGENT(1); private int levelValue; private Level(int levelValue) { this.levelValue = levelValue; } public int getLevelValue() { return levelValue;

weixin_44627629的博客 330

COMSOL金属氢化物-放氢过程

"层流"的出口设置压降函数,解决“找不到一致的初始值”问题,主要是一开始设置出口为1atm的话,压力场过渡太剧烈,不好找到初始解,要么就先算个稳态流场,这种也能求解。注:P0是根据实测PCT的插值曲线(函数名称为:p_iso)得到的,根据初始质量储氢量wtw0,和初始温度条件T0,然后根据函数p_iso(wtw0)*exp(-deltHd/R_const*(1/T0-1/303.15[K]))求解获得。若"初始步长"选择框不勾上,前面0~5s内的求解容易发散,然后求解失败。2、设置"达西定律"的。

qq_24800941的博客 1931

制作Ubuntu22.04启动盘

现在越来越多程序代码都需要运行在linux环境下,运行这些代码的前提是安装一个稳定的linux操作系统。本文选择Ubuntu 22.04去制作系统启动盘。本文主要对ubuntu22.04的启动盘制作过程进行了详细的说明,希望能帮助到有需要的朋友。

lyx_ok的博客 1万+

Junite&反射&注解—java学习笔记

Junite 一般我们使用创建一个测试类来定义main方法来测试一个方法是否有用。 而junite测试作为白盒测试的一种。我们一般定义一个test包,在下边将方法粘贴过来,在方法上边添加@test注解,使开启这个类的时候,这些方法都可以进行测试。在控制台显示方法名是绿色,即方法没有问题,(一般定义方法是没有参数无返回值) @Test @Before @After 反射 我们知道Java文件执行分3个阶段。首先是xxx.java文件,这是我们自己写出来的文件。将这个.java文件编译后,成为.class字节码

weixin_49072771的博客 582

小治同学的JAVAWEB学习笔记-Junit&反射&注解

Junit 单元测试 黑盒测试 不需要写代码,只放入输入然后查看输出是否是符合目标标准 白盒测试 需要写代码,关注代码的具体流程 Junit使用:白盒测试 步骤 1.定义一个测试类(测试用类) 建议: 测试类名:北侧是的类+Test 包名:XXX.XXX.XX.Test 2.定义测试方法:可以独立运行 建议: 方法名:test测试的方法名 返回值 void 参数列表 空参 3.给方法加@Test 判定结果 1.红色代表失败 2.绿色代表成功在这里 原代码 public class Caltest {

代码中枢:软件工程理论与实践的桥梁 486

Simulink开发项1000例实战专栏--实例148:构建一个完整的电动汽车电池SOH评估仿真模型,包括电池建模模块、数据采集模块、SOH估算算法模块以及性能评估模块

电动汽车的动力电池是其核心部件,而电池的健康状态(State of Health, SOH)直接影响车辆的续航能力和使用寿命。SOH通常定义为当前电池容量与初始容量的比值,用百分比表示。通过基于MATLAB/Simulink平台的SOH评估仿真,可以实时监测电池的退化情况,并为电池管理系统(BMS)提供决策依据。本项目旨在构建一个完整的电动汽车电池SOH评估仿真模型,包括电池建模模块、数据采集模块、SOH估算算法模块以及性能评估模块,并通过仿真验证SOH评估的准确性。

xiaoheshang_123的博客 342

《QGIS快速入门与应用基础》【专栏完整目录】

《QGIS快速入门与应用基础》第一卷专栏完整目录,覆盖 001–328 全部篇目与附录,逐篇可跳转。

LuckyHanMo的博客 1302

七、Web服务器——Junit单元测试 & 反射 & 注解学习笔记

今日内容 1. Junit单元测试 2. 反射 3. 注解 Junit单元测试: * 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 2. 白盒测试:需要写代码的。关注程序具体的执行流程。 * Junit使用:白盒测试 * 步骤: 1. 定义一个测试类(测试用例) * 建议: * 测试类名:被测试的类名Test CalculatorTest * 包名:xxx.xxx.xx.test cn.itcast.test 2. 定义测试

zep 361

升级conda时出现Malformed version string invalid chars错误解决方案

但有时,当你使用“conda upgrade”的命令时,你可能会遇到一个错误,提示你的环境解析失败,出现“Malformed version string invalid chars”错误消息。如果以上两个步骤都没有解决你的问题,那么你可以考虑更新conda的依赖项。如果你的conda版本已经是最新的,那么你需要清理conda的缓存。最后,如果以上方法都无法解决问题,你可以尝试使用pip进行更新。如果你的conda版本过旧,你需要先更新conda。首先,你需要确认你当前使用的conda版本。

BUG?不存在的! 1411

学习笔记-公共字段属性赋值-AOP面向切面编程&自定义注解&反射

自定义注解 =你自己定义的一种“标签”,用来给类 / 方法 / 属性打标记,供程序在运行时读取并做额外处理。注意:注解本身【不会做任何事情】真正“干活”的永远是:读取注解的代码(AOP / 反射 / 框架)注解(Annotation)是 Java 语言的一种特殊语法,用来给类、方法、字段等添加“额外信息”自定义注解的基本要求注意:Java 规定:只有@interface才能定义“注解类型”1️⃣不能有方法体2️⃣不能有参数3️⃣ 返回值类型有限制,只能是:基本类型。

weixin_49460615的博客 758

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an &ldquo;advanced algorithms&rdquo; book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java学习-反射&泛型&注解

Java反射的学习和注解的学习和泛型的学习,包括反射的基本介绍、反射机制的运用、类型擦除、元注解等

qq_56760790的博客 1215

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

枚举&注解&反射

分享一下学习枚举&amp;注解&amp;反射 的时候的笔记,有错误的地方希望大佬们可以指出。 文章目录前言一、枚举1、简介2、定义格式3、枚举的主要方法4、实现接口的枚举类注意事项:二、注解1、简介2、学习重点3、内置注解4、元注解5、自定义架构三、反射概述类加载器 前言 学习重点:枚举、注解、和反射的概念,定义格式,常用方法,了解它们使用的方法。 一、枚举 1、简介 JDK1.5引入了新的类型——枚举。在JDK1.5之前,我们定义常量都是:public static fianl… 很难管理。 枚举

weixin_43515837的博客 599

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

注解以及如何利用反射获取注解

什么是注解 1.Annotation是从JDK5.0开始引入的新技术 2.Annotation的作用 : (1)不是程序本身,可以对程序作出解释(这一点和注释(comment)没什么区别) (2)可以被其他程序(比如:编译器等)读取 3.Annotation的格式: 注解是以"@注释名"在代码中存在的,还可以添加一-些参数值,例如:@SuppressWarnings(value="unchecked") 4.Annotation在哪里使用? 可以附加在package , class , method ,

qq_42500503的博客 7996

【Kotlin】注解&反射&扩展

也就是说 b.also { b = a } 会先将 a 的值 (1) 赋值给 b,此时 b 的值为 1,然后将 b 原始的值(2)赋值给 a,此时 a 的值为 2,实现交换两个变量的目的。在上面的例子中看似 T.run 会更好,因为 this 可以省略,调用更加的简洁,但是 T.let 允许我们自定义参数名字,使可读性更强,如果倾向可读性可以选择 T.let。在我们的预期中,我们希望调用的是扩展函数foo(),但是输出的结果为: son called member foo。+号对应的函数名是plus。

sjb2274540432的博客 1492

Java注解和反射

一、注解 注解(Annotation): 从jdk5.0开始引进,可以对程序进行解释或被其他程序读取。 注解格式:"@注释名",并可以添加一些参数。 例:@MyAnnotation(value=‘value’) 1、内置注解 @override: 用于修饰方法,表示该方法声明是重写或实现一个父类的方法 @Deprecated: 用于修饰方法、属性、类,表示已过时不建议使用的 @SuppressWarnings: 用于抑制编译时的警告信息 2、元注解 作用:用于注解其他注解 @Target: 用于描述注解的适

qq_39565343的博客 2172

单元测试&反射&注解

... parameterTypes) 获取类的某个成员方法(只要存在就能拿到)public Field getField(String name) 获取类的某个公共成员变量(只能获取public修饰的)>[] getConstructors() 获取所有的公共构造器(只能获取public修饰的)public Field[] getFields() 获取类的所有公共成员变量(只能获取public修饰的)Method[] getMethods() 获取类的全部公共成员方法(只能获取public修饰的)

m0_57278939的博客 2045

Java 反射专题面试八股文|快速学会反射&注解&代理

有,例如日志、限流、权限认证模块,结合AOP的方式做切面编程,然后通过注解注入静态代理中,对目标对象的每个方法的增强都是手动完成的,非常不灵活(比如接口一旦新增加方法,目标对象和代理对象都要进行修改)且麻烦(需要对每个目标类都单独写一个代理类从 JVM 层面来说,静态代理在编译时就将接口、实现类、代理类这些都变成了一个个实际的 class 文件。静态代理实现步骤定义一个接口及其实现类;创建一个代理类同样实现这个接口将目标对象注入进代理类,然后在代理类的对应方法调用目标类中的对应方法。

sluck_0430的博客 1371

如何理解Java注解&反射

用户可以根据自己的需求定义注解。Java标准注解JDK 中内置了以下注解:注解名称@Override检查该方法是否是重写方法,如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误标记过时方法,如果使用该方法,会报编译警告指示编译器去忽略注释解中声明的警告java8支持,标识一个匿名函数或函数式接口。

爱吃Java的羊的博客 1049

反射&注解

今日目标 获得字节码对象的三种方式 能够使用反射操作构造方法,变量,方法 能够获取自定义注解的变量值 能够自定义注解 1.反射 1.1反射的概述 问题:我们平时书写在idea中的Java程序是如何运行的呢? 1)首先将 .java 源文件编译为class类文件; 2)编译后的类文件是存在硬盘中的,那么我们运行需要在内存中看到效果,那么类文件是如何被加载到内存中的呢,就是jvm通过类加载器Cla...

weixin_40245787的博客 643

注解&反射

注解 概念 注解(Annotation),也叫元数据,标签,注释。与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。是给程序看的,大家可以将注解看成是一个标签,只不过这个标签有特殊含义,可能会执行特定的操作。 学习注解的意义 (1) 在学习和工作中能看懂代码 (2) 让代码更简洁,逻辑更清晰 (3) 自定义注解 ...

mengleiyuan的博客 236

Java_SE_注解&反射

和Method[] getMethods() 获取Class所表示的类的公开方法(包括从超类继承的)用上述的getMethod()去获取类中的私有方法会抛出异常:java.lang.NoSuchMethodException。//获取当前类对象所表示的类的所有公开方法(包含从超类继承的方法)上述两个方法是用来获取Class所表示的类自身定义的方法(不含从超类继承的,但是包含private)//获取Class所表示的类的包信息。//仅获取类名(不包含包名)// 获取类对象所表示的类的完全限定名。

qq_42978075的博客 970

Java注解与反射

Java注解与反射

m0_58684211的博客 1195
上一篇: winServer服务器搭建nginx配置https问题及流程:
下一篇: 【无标题】
渣成沙
博客等级 码龄11年 36粉丝 49原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值