Java反射机制详情
1.运行环境
JDK8+lntellij IDEA 2018.3
2.反射机制是什么
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
3.反射机制能做什么
反射机制主要提供了以下功能:
在运行时判断任意一个对象所属的类;
在运行时构造任意一个类的对象;
在运行时判断任意一个类所具有的成员变量和方法;JDK8+lntellij IDEA 2018.3
在运行时调用任意一个对象的方法;
生成动态代理。
Ø获取一个对象的父类与实现的接口
public class Demo1 {
public static void main(String[] args) {
//1.
Object obj=new String();
Class cla1=obj.getClass();
//2.
Class cla2 = String.class;
//3
try {
Class cla3 = Class.forName("java.lang.String");
//4.
ClassLoader cl = ClassLoader.getSystemClassLoader();
Class cla4 = cl.loadClass("java.util.ArrayList");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Ø反射String类的所有构造方法
public class Demo2 {
public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
// 反射String类的所有构造方法
Class cla=Student.class;
System.out.println("所有构造方法");
// Constructor[] cons = clz.getConstructors();
Constructor[] cons=cla.getDeclaredConstructors();
for(Constructor con : cons){
// System.out.println("访问修饰权限:" +
// Modifier.toString(con.getModifiers()));
// System.out.println("方法名:" + con.getName());
// System.out.println("****************************");
System.out.println(Modifier.toString(con.getModifiers()) + " "
+ con.getName());
}
//无参的构造方法
Student stu=new Student();
Constructor con=cla.getDeclaredConstructor();
Object obj = con.newInstance();
System.out.println(obj);
//找带string,int类型参数的构造方法
Student s = new Student("daiyanye",12);
con = cla.getDeclaredConstructor(String.class, int.class);
obj = con.newInstance("daiyanye", 12);
con = cla.getDeclaredConstructor(String.class);
}
}
Ø效果图

心得:
柏拉图曾经说过:“成功的唯一秘诀就是坚持带最后到一分钟”
好比长途赛跑,最费力的并不是开始的第一步,
而是迈向终点的最后一步。
毅力,就是恒心的体现。
一个没有毅力的人是不能成大器的。
“加油,努力,上进,做自己,我要赢”
Java反射机制详情的更多相关文章
- Java反射机制详情(2)
| |目录 运行环境 Java语言的反射机制 Class中的常用方法(获得类的构造方法) Class中的常用方法(获得类的属性) Class中的常用方法(获得类的方法) 反射动态调用类的成员 1.运行 ...
- 11.Java反射机制 哦对了,前面的序号来自随笔关于编程之路的思索第一篇
基本概念 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的. 这种动态获取类的信息以及动态调用对象的方法的功能来自于J ...
- 转!!java反射机制
Java 反射机制 基本概念 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的. 这种动态获取类的信息以及动态调用对象 ...
- Java反射机制调用对象的方法 —— 将一个对象的属性值赋值给另一个对象的属性
模拟一个场景: 众所周知,EasyExcel导出Excel文档是依赖于注解完成的,在实体类需要导出的属性上面加上注解,导出的时候会自动识别该属性. 假如我们现在需要导出用户的信息,又不想污染原本的实体 ...
- 第28章 java反射机制
java反射机制 1.类加载机制 1.1.jvm和类 运行Java程序:java 带有main方法的类名 之后java会启动jvm,并加载字节码(字节码就是一个类在内存空间的状态) 当调用java命令 ...
- Java反射机制
Java反射机制 一:什么事反射机制 简单地说,就是程序运行时能够通过反射的到类的所有信息,只需要获得类名,方法名,属性名. 二:为什么要用反射: 静态编译:在编译时确定类型,绑定对象,即通过 ...
- java基础知识(十一)java反射机制(上)
java.lang.Class类详解 java Class类详解 一.class类 Class类是java语言定义的特定类的实现,在java中每个类都有一个相应的Class对象,以便java程序运行时 ...
- java基础知识(十一)java反射机制(下)
1.什么是反射机制? java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象都能够调用他的属性和方法,这种动态获取属性和方法的功能称为java的反射机制. ...
- Java反射机制专题
·Java Reflection Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方 ...
随机推荐
- Linux 递归修改后缀名
1 修改命令 需要用到: find awk xargs 递归修改命令如下: find . -name '*.XXX' | awk -F "." '{print $2}' | xar ...
- 【秒懂音视频开发】18_详解YUV
本文的主角是多媒体领域非常重要的一个概念:YUV. 简介 YUV,是一种颜色编码方法,跟RGB是同一个级别的概念,广泛应用于多媒体领域中. 也就是说,图像中每1个像素的颜色信息,除了可以用RGB的方式 ...
- 3、带你一步一步学习ASP.NET Core中的配置之Configuration
如果你是刚接触ASP.NET Core的学习的话,你会注意到:在ASP.NET Core项目中,看不到.NET Fraemwork时代中的web.config文件和app.config文件了.那么你肯 ...
- 022- Java算数运算符
算数运算符有哪些: 输入以下代码: public class Operator01 { public static void main(String[]args){ int a = 10; int b ...
- 【CompletableFuture】CompletableFuture测试runAsync()方法调用
问题 CompletableFuture.runAsync() 返回 CompletableFuture<Void>对象,调用CompletableFuture.allOf(f1,f2). ...
- hdu4849 最短路
题意: 让你求0到所有点最短路中对m取余最小的那个数. 思路: 简单题,直接根据题目给的公式把z求出来,然后建边,然后最短路,然后枚举每一个点对m取余记录最小,然后输出答案,然 ...
- Python2中的urllib、urllib2和 Python3中的urllib、requests
目录 Python2.x中 urllib和urllib2 常用方法和类 Python3.x中 urllib requests Python2.x中 urllib和urllib2 urllib 和 ur ...
- 多变量高斯(MVN)概率建模的两种方案
摘要:在我们的时序异常检测应用中,设计了对时序数据进行多变量高斯(MVN)建模的算法方案进行异常检测,本文对基于tensorflow的两种MVN建模方案进行了总结. 1.基于custom choles ...
- Java GUI入门手册-AWT篇
Java GUI入门手册: AWT是基本的GUI设计工具,重点学习其中的布局格式以及事件监听事件. 首先创建一个窗口,我们先分析Frame类中的方法: 通过上图,可以看出frame是由构造方法的重载: ...
- Django(10)ORM模型介绍
前言 随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了: 1.SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长.会出现很多相近的SQL语句. 2. ...