反射(一)

news/2024/5/19 5:44:25 标签: java, 反射, class
class="baidu_pl">
class="article_content clearfix">
class="markdown_views prism-github-gist">

class="tags" href="/tags/FanShe.html" title=反射>反射(一)

什么是class="tags" href="/tags/FanShe.html" title=反射>反射?

类加载之后,堆内存中会产生一个Class类型的对象(一个类只有一个Class类型对象,这个对象是提供给外界访问对应类的接口),该对象包含了完整的类结构信息,就像一面镜子,通过这个对象可以看到类的结构。

class="tags" href="/tags/FanShe.html" title=反射>反射能做什么?(皆指的是运行期间)

  1. 判断任意对象所属的类

  2. 构造任意一个类的对象

  3. 调用任意一个类的方法和属性

  4. 获取类的注解

  5. 生成动态代理

如何获取Class类实例?(以Person类为例)

  • 已知具体的类,通过class属性获取

    class="prism language-class="tags" href="/tags/JAVA.html" title=java>java">Class class="token class-name">a class="token operator">= Personclass="token punctuation">.class="token keyword">classclass="token punctuation">;
    
  • 已知某个类的对象,通过getClass()方法获取

    class="prism language-class="tags" href="/tags/JAVA.html" title=java>java">Class class="token class-name">a class="token operator">= personclass="token punctuation">.class="token function">getClassclass="token punctuation">(class="token punctuation">)class="token punctuation">;
    
  • 已知类的全限定名,通过Class类的静态方法forName()获取

    class="prism language-class="tags" href="/tags/JAVA.html" title=java>java">Class class="token class-name">a class="token operator">= Classclass="token punctuation">.class="token function">forNameclass="token punctuation">(class="token string">"demo.Person"class="token punctuation">)class="token punctuation">;
    
  • 基本内置类型的包装类可以用Type属性获取

    class="prism language-class="tags" href="/tags/JAVA.html" title=java>java">Class class="token class-name">a class="token operator">= Integerclass="token punctuation">.Typeclass="token punctuation">;
    

    如有错误或不足之处,非常欢迎指正、讨论


http://www.niftyadmin.cn/n/1867190.html

相关文章

JS:监听网络状态,给予用户提示

简介 在网路变化时,如无网络链接、恢复网络链接,给用户一些提示。 具体实现 主要使用到window的两个监听事件 let offline null window.addEventListener(online, () > {offline.close()offline nullthis.$message({iconClass: el-icon-success…

VUE:自定义实现日历表

简介 学习了一下关于如何自定义一个日历表。 参考文章:Vue写一个日历 具体实现 第一步:打开windows的日历 可以看到,有如下关键点(暂时忽略农历、节气、节日的备注信息): ①年月的信息; ②…

Java hashCode()和equals()

Java hashCode和equals hashCode hashCode()的作用是获取哈希码(也叫散列码),返回的是一个int值,哈希码的作用是确定某个对象在哈希表中的位置(可以快速找到需要的对象),那么问题来了&#xff0…

170819 四步安装Ubuntu 16.04 搜狗拼音输入法

参考文献: ubuntu16.04如何安装搜狗输入法 Ubuntu 16.04 LTS安装sogou输入法详解 0. 安装cuDNN-dev版本(非run版本):https://developer.nvidia.com/cudnn(因为我这边深度学习配置了CUDAcuDNN,安装具有依赖关系。也可以根据自己的情况&…

类是如何加载的

类是如何加载的? 要想知道类是如何加载的,我们应该先知道类加载分为几步。 1.加载 类加载器把class文件内容加载到内存中,将这些静态数据转换成方法区的运行时数据结构,然后再生成一个代表这个类的Class对象(这个对象…

VUE:img标签加载图片失败时,显示一张自定义默认图片

简介 在使用<img />标签时&#xff0c;会遇到图片加载失败&#xff08;有图片资源路径&#xff0c;但是可能路径拼接不正确、域名失效等&#xff09;的情况&#xff0c;此时&#xff0c;显示出来的效果看着就很不舒服&#xff0c;就想显示一张默认图片。 img加载失败时…

VUE:vue3.x自定义上传文件的组件

简介 有时候&#xff0c;ui框架的上传组件不能满足我们的使用需求&#xff0c;就需要自定义一个上传的组件。 具体实现 1.vue3.x 的写法 1.1组件 globalUpload <template><div class"upload" click"active"><slot name"fileSlot&q…

erlang练习题

-module(three). -export([]). %% 1、将列表中的integer,float,atom转成字符串并合并成一个字个字符串&#xff1a;[1,a,4.9,“sdfds”] 结果&#xff1a;“1a4.9sdfds” one([])->[]; one([H|T])-> if is_list(H)->Hone(T); true->lists:flatten(io_lib:format(&…