Java反射机制的使用方法



Java的反射机制同意你在程序执行的过程中获取类定义的细节。有时候在程序执行的时候才得知要调用哪个方法,这时候反射机制就派上用场了。




获取类

类的获取方法有下面几种:

  •    forName()。通过Class.forName()获取与字符串向相应的类。

    比方\lstinline{Class.forName("java.lang.String");}。

  •    getClass()。每一个对象都有这种方法。比方\lstinline{Foo foo; ...; foo.getClass();}。
  •    类名.class。直接通过类名获取这个类的反射对象。比方String.class。
  •    基本类型的类。

    比方Integer.TYPE。

    这样的方法与Integer.class是由差别的。一个是基本类型(Primitive type)。一个是复合类型(Composition)。


获取构造函数

获取构造函数由下面几种方法:

  •    getConstructor(Class[] params)。获取公共的构造函数。

  •    getConstructors()
  •    getDeclaredConstructor(Class[] params)。获取全部构造函数。
  •    getDeclaredConstructors()


获取构造函数之后能够通过newInstance生成一个新的实例。


获取字段

获取字段的方法有下面几种:
  •    getField(String name)。获取公共的字段。
  •    getFields()。

  •    getDeclaredField(String name)。获取全部的字段。
  •    getDeclaredFields()

获取字段之后能够通过getDouble getInt等方法获取变量的值。也能够通过setDouble setInt等方法给变量赋值。


获取成员方法

获取方法的方法有下面几种:

  •    getMethod(String name, Class[] params)。获取公共的方法。

  •    getMethods()
  •    getDeclaredMethod(String name, Class[] params)。

    获取全部的方法。

  •    getDeclaredMethods()


获取成员方法之后能够调用invoke方法运行该方法。


数组


数组也是一个特殊的类型,因此Java中提供了java.lang.reflect.Array实现数组的动态操作。创建一个数组能够调用newInstance(type, count)方法,获取一个元素能够通过get(array, index)。

转载于:https://www.cnblogs.com/zfyouxi/p/5123947.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

银行计算机设备日常检查表,[计算机]201154安全检查表.doc

[计算机]201154安全检查表土建基础框架施工检查表编号:2011-03-01-11工程名称铸造车间检查时间2011 年 月 日检查部位基础施工检 查 人检 查结 论百分制折合分数:需要整改共 条。受检单位河南周口受检责任人检 查 内 容检查项目检查内容和安全文明施工要…

我为什么要写FansUnion个人官网-BriefCMS-电子商务malling等系统

不少朋友一直关注我最近几个月,已经做的和正在做的项目,比如个人官网、BriefCMS、电子上午malling等系统。但是呢,部分朋友比较好奇,为啥要去写。他们比较疑惑的是,市面上已经有很多类似的系统了,甚至有部分…

Node开发文件上传系统及向七牛云存储和亚马逊AWS S3的文件上传

背景起,有奏乐: 有伟人曰:学习技能的最好途径莫过于理论与实践相结合。 初学Node这货时,每每读教程必会Fall asleep。 当真要开发系统时,顿觉精神百倍,即便踩坑无数也不失斗志。 因为同团队的小伙伴们都在辛…

计算机学业水平考试及格,信息技术学业水平考试表格部分试题(带答案)

第三章表格信息的加工与表达复习学案【学习目标】1.熟练使用excel加工表格信息,理解用图表来表现信息的特点与意义,2.能根据表格数据关系选择合适的图表类型表达意图。【考点】1.表格中常用的函数及其求值方法;2.根据数据选择合适的图表类型&…

Ok6410挂载NFS

虚拟机: apt-get install portmap apt-get install nfs-kernel-server mkdir /nfs/root/mNFS chmod 777 /nfs chmod 777 /nfs/root vi /etc/exports 添加:/nfs/root *(rw,sync,no_root_squash) 开发板: mount -t nfs 192.168.0.12…

云计算:容器技术变革云计算,SaaS带动CaaS市场

报告摘要: 1、容器技术增速惊人,市场认可度提高 虚拟化是云计算的重要基础,Docker定义了一套容器从构建到执行的标准化体系,改变了传统的虚拟化技术,深度影响了云计算领域。 随着谷歌、亚马逊、微软等云计算厂商纷纷加…

Jan 12 - Delete Node in a Linked List; Data Structure; Linked List; Pointer;

代码: /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/ public class Solution {public void deleteNode(ListNode node) {if(node null) return;while(node.next ! …

三年级神奇电子计算机教案,人教版小学三年级下册信息技术教案

人教版小学三年级下册信息技术教案 人教版小学信息技术教案第一课 神奇的信息世界教学目的:通过学习使学生更充分地了解信息技术在生活中的应用。教学内容:观看“神奇的信息世界”光碟教学准备:1、调试每台计算机 2、打开计算机并由教师机控制…

spark 安装配置

最佳参考链接 https://opensourceteam.gitbooks.io/bigdata/content/spark/install/spark-160-bin-hadoop26an_zhuang.html Apache Spark1.1.0部署与开发环境搭建   Spark是Apache公司推出的一种基于Hadoop Distributed File System(HDFS)的并行计算架构。与MapReduce不同&am…

《大数据原理:复杂信息的准备、共享和分析》一一2.5 在标识符中嵌入信息:不推荐...

2.5 在标识符中嵌入信息:不推荐大多数标识符不是纯粹的随机数,它们通常含有一些可由熟悉标识系统的人解释的嵌入信息。例如,标识符中可以嵌入姓的前三个字母,同样,标识符中也可以嵌入出生年份的最后两位数字。标识符中…

python基础知识-列表,元组,字典

列表(list) 赋值方法: l [11,45,67,34,89,23] l list() 列表的方法: 1 #!/usr/bin/env python2 3 class list(object):4 """5 list() -> new empty list6 list(iterable) -> new list initial…

车站计算机联锁系统的仿真设计,车站计算机联锁仿真设计.doc

车站计算机联锁仿真设计2012 届 交通运输 学院专 业学 号 2008学生姓名指导教师完成日期 2012年 月日计算机联锁是保证车站内列车和调车作业安全,提高车站通过能力的一种信号设备。设计以沙盘模型为根据,练习制作联锁信号图表,使用Visual Bas…

如何解决机器学习中的数据不平衡问题?

在机器学习任务中,我们经常会遇到这种困扰:数据不平衡问题。 数据不平衡问题主要存在于有监督机器学习任务中。当遇到不平衡数据时,以总体分类准确率为学习目标的传统分类算法会过多地关注多数类,从而使得少数类样本的分类性能下降…

ubuntu每次登陆都用root账号登陆

sudo -s 进入 root 用户权限模式 vi /etc/lightdm/lightdm.conf [SeatDefaults] greeter-sessionunity-greeter user-sessionUbuntu greeter-show-manual-logintrue allow-guestfasle 重启后再登陆就会 直接用root登陆了 版权声明:本文为博主原创文章,未…

js-BOM

私有变量: 1、在一个实例上调用setName()会影响所有的实例 BOM: 1、全局变量不能通过delete操作符删除,而直接在window对象上定义的属性可以 2、尝试访问为声明的变量会抛出错误,但通过查询window对象&…

计算机组成实验v代表什么,2014计算机组成原理实验指导V1.3.docx

文档介绍:实验一运算器组成实验实验目的熟悉Logisim软件平台。掌握运算器基本工作原理掌握运算溢出检测的原理和实现方法;理解有符号数和无符号数运算的区别;理解基于补码的加/减运算实现原理;熟悉运算器的数据传输通路。实验环境Logisim是一款数字电路模拟的教育软…

四大技巧轻松搞定云容器

云容器技术,作为传统虚拟化管理程序的一种替代品,正称霸着云市场。容器是轻量级的,并提供增强的便携性,允许应用在平台之间迁移,而不需要开发者重做或重新架构应用。但是,尽管其好处让开发人员感到惊叹&…

Android 图文混排 通过webview实现并实现点击图片

在一个开源项目看到是用的webview 实现的 1. 这是在asset中的一个模板html <html> <head> <title>News Detail</title> <meta name"viewport" content"widthdevice-width, minimum-scale0.5, initial-scale1.2, maximum-scale2.0…

h5engine造轮子

基于学习的造轮子&#xff0c;这是一个最简单&#xff0c;最基础的一个canvas渲染引擎&#xff0c;通过这个引擎架构&#xff0c;可以很快的学习canvas渲染模式&#xff01; 地址&#xff1a;https://github.com/RichLiu1023/h5engine 这是一个比较有意思的h5渲染引擎&#xff…

计算机硬件选型报价,组装电脑硬件该怎么选择?这几个硬件要舍得花钱,千万别买错了!...

原标题&#xff1a;组装电脑硬件该怎么选择&#xff1f;这几个硬件要舍得花钱&#xff0c;千万别买错了&#xff01;组装电脑是多硬件组合的产物&#xff0c;每一个硬件对于电脑的性能都是有影响的&#xff0c;影响的大小与电脑的硬件有直接关系&#xff0c;有些硬件就要舍得花…