JAVA基础整理-80.Java反射机制

Java什么是反射机制?反射机制的概念

  在 ORM (Object Relational Mapping 对象关系映射)中间件的实现中,运用 java 反射机制可以读取任意一个 JavaBean 的所有属性,或者给这些属性赋值。

  1. Class labelCls=label1.getClass(); //label1为 JLabel 类的对象

Java反射在类中的应用:

通过反射访问构造函数(方法)

  为了能够动态获取对象构造方法的信息,首先需要通过下列方法之一创建一个 Constructor 类型的对象或者数组。

  • getConstructors()
  • getConstructor(Class<?>…parameterTypes)
  • getDeclaredConstructors()
  • getDeclaredConstructor(Class<?>...parameterTypes)

 如果是访问指定的构造方法,需要根据该构造方法的入口参数的类型来访问。

通过反射执行方法(获取方法)

  要动态获取一个对象方法的信息,首先需要通过下列方法之一创建一个 Method 类型的对象或者数组。

  • getMethods()

  如果是访问指定的构造方法,需要根据该方法的入口参数的类型来访问。

  

通过反射访问成员变量

  通过下列任意一个方法访问成员变量时将返回 Field 类型的对象或数组。

  • getFields()

Java在远程方法调用中运用反射机制

原文地址:https://www.cnblogs.com/luojie1216/p/10620994.html

时间: 2024-11-03 18:14:53

JAVA基础整理-80.Java反射机制的相关文章

Java基础知识——类装载器与反射机制

类装载器ClassLoader 类装载器就是寻找类的字节码文件,并构造出类在JVM内部表示的对象组件. 类装载器把一个类装入JVM中,要经过三步: 1.装载:查找和导入Class文件: 2.链接:执行校验.准备和解析(解析是可以选择的): 3.初始化:对类的静态变量.静态代码块执行初始化工作: 类装载工作由ClassLoader及其子类负责.JVM在运行时会产生三个ClassLoader:根装载器.ExtClassLoader(扩展类装载器)和AppClassLoader(系统类装载器). 根装

java基础之--反射机制

反射的概念: 反射是指程序可以访问.检测和修改它本身的状态和形为的一种能力,并根据自身形为的状态和结果,调整和修改程序所描述的形为的状态和相关语义.                反射是java中一强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以在运行时装配,无须在组件之间进行源码链接.但反射使用不当会使成本很高. 反射的作用: 反编译:.class-->.java 通过反射机制访问java对象的属性,方法,构造方法等: sun为我们提供的反射机制的类: java.lang.Class

JAVA基础整理-50.Java继承和多态

Java类的封装 封装就是将对象的属性和方法相结合,通过方法将对象的属性和实现细节保护起来,实现对象的属性隐藏. Java类的继承:Java简单的继承及单继承和多继承的区别 简单继承 注意:类的继承并不改变类成员的访问权限.也就是说,如果父类的成员是公有的.被保护的或默认的,它的子类仍具有相应的这些特性. extends 关键字直接跟在子类名之后,其后面是该类要继承的父类名称.例如: public class Student extends Person{} 注意:如果在父类中存在有参的构造方法

JAVA基础整理-22. Java内置包装类

Java Object类详解:Object类的常用方法(equals()和getClass()) Object 是 Java 类库中的一个特殊类,也是所有类的父类.当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类. 在 Object 类中定义的方法,在其他类中都可以使用 equals() 方法 equals() 方法的作用与运算符类似,用于值与值的比较和值与对象的比较,而 equals() 方法用于对象与对象之间的比较 getClass() 方法 getClass()

Java基础学习总结——Java对象的序列化和反序列化

一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中: 2) 在网络上传送对象的字节序列. 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存.比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些s

Java基础11:Java泛型详解

Java基础11:Java泛型详解 泛型概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 什么是泛型?为什么要使用泛型? 泛型,即"参数化类型".一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参.那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参). 泛型的本质是为了参数化类型(在不创建新的类型的

Java基础17:Java IO流总结

Java基础17:Java IO流总结 IO流概述 在这一小节,我会试着给出Java IO(java.io)包下所有类的概述.更具体地说,我会根据类的用途对类进行分组.这个分组将会使你在未来的工作中,进行类的用途判定时,或者是为某个特定用途选择类时变得更加容易. 输入和输出 术语"输入"和"输出"有时候会有一点让人疑惑.一个应用程序的输入往往是另外一个应用程序的输出?那么OutputStream流到底是一个输出到目的地的流呢,还是一个产生输出的流?InputStre

Java基础16:Java多线程基础最全总结

Java基础16:Java多线程基础最全总结 Java中的线程 Java之父对线程的定义是: 线程是一个独立执行的调用序列,同一个进程的线程在同一时刻共享一些系统资源(比如文件句柄等)也能访问同一个进程所创建的对象资源(内存资源).java.lang.Thread对象负责统计和控制这种行为. 每个程序都至少拥有一个线程-即作为Java虚拟机(JVM)启动参数运行在主类main方法的线程.在Java虚拟机初始化过程中也可能启动其他的后台线程.这种线程的数目和种类因JVM的实现而异.然而所有用户级线

转载:java基础学习总结——java读取properties文件总结

java基础学习总结--java读取properties文件总结 一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResourceAsStream方法和InputStream流去读取properties文件,使用getResourceAsStream方法去读取properties文件时需要特别注意properties文件路径的写法,测试项目如下: 1.1.项目的