初识反射之二

上一篇说了反射的三种方式。今天就第三种说一说Class.forName("这个类的全程")。这个是动态加载。加载机制里面有一个动态加载和静态加载。

先说静态加载,就相当于万事俱备只欠东风型,怎么说呢?他会把你写的代码每个都检查一遍,都通过了才能进行运行。

动态加载就显得灵活一些,相当于吃自助,就是需要什么加载什么,其他不需要的哪怕出错,那先不管。

然后再说这个Class.forName("这个类的全称") ,它相当于把这个神仙对象弄出来了。可是当调用newstance方法时,相当于打回原形。问题是当大伙都成仙后,大家就都在一个起跑线上了,那么现在你要被打回原形时,要知道你是什么变得,怎么办?说是白蛇,万一是青蛇呢?说青蛇,万一是乌龟呢?那就在这时用多态原则。不管白蛇青蛇我都实现动物这个接口,那么就好了。知道你原型是 动物就好。

这就是对反射的认识之二。

时间: 2024-08-03 11:46:33

初识反射之二的相关文章

跟王老师学反射(二):Java类的加载、连接和初始化

跟王老师学反射(二):Java类的加载.连接和初始化 主讲教师:王少华   QQ群号:483773664 学习内容: 了解类的加载.连接和初始化 一.类的生命周期 当我们编写一个java的源文件后,经过编译会生成一个后缀名为class的文件,这种文件叫做字节码文件,只有这种字节码文件才能够在java虚拟机中运行,java类的生命周期就是指一个class文件从加载到卸载的全过程.一个java类的完整的生命周期会经历加载.连接.初始化.使用.和卸载五个阶段,当然也有在加载或者连接之后没有被初始化就直

初识Swift(二)-数组与数据字典

最近学院发疯,要期末了,却要补一个期中考试,一直在忙,没有继续学下去.郁闷了好几天,今天终于得到一个实习的机会,只能加紧ios的学习,不过,我先学习一下Swift,等到书到了,就开始好好弄一下ios.言归正传,继续Swift数组和数据字典的学习. 不过,到这里,真的发现,Swift有js的身影,比传统语言简单了好多. 数组 定义与初始化 方式一 import Foundation var a1:String[]=[] a1+="aa1" a1+="aa2" a1+=

capwap学习笔记——初识capwap(二)

2.5.1 AC发现机制 WTP使用AC发现机制来得知哪些AC是可用的,决定最佳的AC来建立CAPWAP连接. WTP的发现过程是可选的.如果在WTP上静态配置了AC,那么WTP并不需要完成AC的发现过程. WTP首先发送一个 Discovery Request message给受限的广播地址,或者CAPWAP的多播地址(224.0.1.140),或者是预配置的AC的单播地址.在IPV6网络中,由于广播并不存在,因此使用"All ACs multicast address" (FF0X

.net Reflection(反射)- 二

反射 Reflection 中访问方法 新建一个ClassLibrary类库: public class Student { public string Name { get; set; } public string School { get; set; } public int Sum(int a, int b) { return a + b; } public string GetName() { return "this is book" ; } } /// <summa

初识CentOS(二)&mdash;&mdash;获得超级用户(root)权限

为了安全起见,linux对普通用户权限限制较大,但我们平时还是需要超级用户权限的,这类似于windows里的管理员权限.本文简单介绍如何在centos中获取超级用户权限,各linux发行版类似 在登陆界面选择"other"后输入用户名root及密码直接登陆即可.如图: 二.普通用户进入超级用户状态 在终端输入su -,然后输入密码即可,如图:大专栏  初识CentOS(二)--获得超级用户(root)权限34.png" /> 三.以普通用户使用超级用户权限 一些命令的执

Java从零开始学四十一(反射简述二)

一.实例化Class类对象 实例化Class类对象的方法有三种: 第一种:通过forName()方法 第二种:类.class 第三种:对象.getClass() 二.Class类的常用方法 No. 方法 类型 描述 1 public static Class<?> forName(String className) throws ClassNotFoundException 普通 传入完整的“包.类”名称实例化Class对象 2 public Constructor[] getConstruc

初识反射

一:什么是反射?反射能干什么? 1.反射是一种能力,所以给的定义就是说明了它能干什么 2.获取类型相关的信息:动态的调用方法:动态构造对象:从程序集中获得类型 a:获取类型相关的信息:反射的核心Type类,Type对象提供的属性和方法可以获取对象的一切信息(方法,字段,属性,事件): 直接使用typeof操作符 Type T1 = typeof(StringBuilder); 通过类型实例 Type T2 = new StringBuilder().GetType(); 通过Type类的静态方法

四大神器之反射(二)

利用反射来操纵数组 import java.lang.reflect.Array; /** * * 利用反射来操纵数组 */ public class ArrayTester { public static void main(String[] args) throws ClassNotFoundException { Class classType = Class.forName("java.lang.String"); Object array = Array.newInstanc

1 初识反射

一提起反射这个概念 很多人都害怕.既然java只学过类这个东西,怎么还会说类也是一个对象呢? 先写三个类(伪代码) 学生类 { 姓名 年龄 性别 吃饭(); 睡觉(); 读书(); } 动物类 { 名称: 性别: 栖息地: 吼叫(); 交配(); } 书本类 { 颜色 价格 书名 打开() 关闭( ) } 如果我们要一本书 那么就new 书本()   要个学生new 学生()   书本类是对所有图书共性的描述 动物类是对所有动物共性的描述 我们这样做,我认为叫正射. 我们的思想是这样的  有了一