反射_获取字节码Class对象的三种方式
* 获取Class对象的方式:
1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象
* 多用于配置文件,将类名定义在配置文件中。读取文件,加载类
2. 类名.class:通过类名的属性class获取
* 多用于参数的传递
3. 对象.getClass():getClass()方法在Object类中定义着。
* 多用于对象的获取字节码的方式
* 结论:
同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。
package cn.learn.domain;public class Person {private String name;private int age;public String a;protected String b;String c;private String d;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", a='" + a + '\'' +", b='" + b + '\'' +", c='" + c + '\'' +", d='" + d + '\'' +'}';}public void eat(){System.out.println("eat...");}public void eat(String food){System.out.println("eat..."+food);}
}
package cn.learn.domain;public class Student {}
package cn.learn.reflect;import cn.learn.domain.Person;
import cn.learn.domain.Student;public class ReflectDemo1 {/**获取Class对象的方式:1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象2. 类名.class:通过类名的属性class获取3. 对象.getClass():getClass()方法在Object类中定义着。*/public static void main(String[] args) throws Exception {//1.Class.forName("全类名")Class cls1 = Class.forName("cn.learn.domain.Person");System.out.println(cls1);//2.类名.classClass cls2 = Person.class;System.out.println(cls2);//3.对象.getClass()Person p = new Person();Class cls3 = p.getClass();System.out.println(cls3);//== 比较三个对象System.out.println(cls1 == cls2);//trueSystem.out.println(cls1 == cls3);//trueClass c = Student.class;System.out.println(c == cls1);}
}
反射_获取字节码Class对象的三种方式相关推荐
- java反射之获取class对象,Java之反射机制(获取Class对象的三种方式)
Java之反射机制(获取Class对象的三种方式) 开发工具与关键技术:MyEclipse 10,java 作者:刘东标 撰写时间:2019-06-14 如何得到各个字节码对应的实例对象? 每个类被加 ...
- Java动物类enjoy方法打印_Java反射学习-2 - 获取Class对象的三种方式
1 packagecn.tx.reflect;2 3 importjava.lang.reflect.Constructor;4 importjava.lang.reflect.Field;5 imp ...
- java反射获取实体类_java 反射获取类对象的三种方式
Java反射经常用到的就是获取对象中的属性,那么Java获取类对象就是必不可少的啦! Java实体类: public class ReflexModel { private String code; ...
- 反射应用和获取Class对象的三种方式
一.写一个"框架",可以创建任何对象运行任何方法 1.配置文件 2.使用类加载器ClassLoader,Properties集合是可以和IO流结合使用完成读取和写入数据的集合,方法 ...
- java class 生成对象_Java反射机制(创建Class对象的三种方式)
1:SUN提供的反射机制的类: java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Field java.lang.refl ...
- 获取Class对象的三种方式
获取Class对象的三种方式 Object --> getClass() 通过对象.getclass 任何数据类型(包括基本数据类型)都有一个"静态"的class属性 通过类 ...
- JDBC 创建连接对象的三种方式 、 properties文件的建立、编辑和信息获取
创建连接对象的三种方式 //第一种方式Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/m ...
- Redis存储对象的三种方式
存储对象的三种方式分别为: 1.将对象序列化后保存到Redis 2.将对象用FastJSON转为JSON字符串后存储 3.将对象用Hash数据类型存储 序列化工具类SerializeUtil publ ...
- 详解C#实例化对象的三种方式及性能对比
前言 做项目过程中有个需求要实例化两万个对象并添加到List 中,这个过程大概需要1min才能加载完(传参较多),于是开启了代码优化之旅,再此记录. 首先想到的是可能实例化比较耗时,于是开始对每种实例 ...
最新文章
- 需求文档可以不签字吗之三-一个实例
- 「Swift」Swift与C++和Python
- OJ1081: n个数求和 (多实例测试)(C语言数组实现)
- 控制台异常:Could not connection
- 切换到 oracle的 hr用户下面练习
- 关于focus的概念
- AI考拉技术分享会--IDE 常用功能 for Node.js
- yuml 保存为图片_SLAM建图
- NullReferenceException
- origin使用指导。pdf_获取所有的最高法指导性案例并保存为pdf
- 计算机上安装了新的ie版本,win7电脑自带的IE11浏览器如何降级到IE8
- 软件测试基础理论(总结)
- IT码农哥放弃50万年薪:辞职卖咖喱凉皮
- Apostrophe not preceded by \
- 金融级湖仓一体架构——SequoiaDB巨杉数据库初探
- html语言无序下拉菜单,(4条消息)HTML语言标记详解
- 常规调幅系统matlab结果,matlab课程设计参考题目
- cad中填充的剖面线不能被修剪_为什么CAD中填充无法修剪?
- android小米推送,Android手机端小米推送Demo解析和实现方法
- ES GEO地理空间查询java版