3、获取Class对象的三种方式
3、获取Class对象的三种方式
要想对字节码文件进行解刨,必须要有字节码文件对象
- Object类中的getClass方法
- 通过对象静态属性 .class来获取对应的Class对象
- 只要通过给定类的字符串名称就可以获取该类,更为拓展
3.1 方式一:Object类中的getClass()方法
3.1.1 创建Person类
必须要明确具体的类,并且要创建对象,麻烦。
package com.hw.bean;
/**
* @Description
* @Author Administrator
* @Date 2018/11/29
*/
public class Person {
private String name;
private int age;
public void show() {
System.out.println(name + "... show run ..." + age);
}
private void privateMethod() {
System.out.println("privateMethod run...");
}
public void paramMethod(String str, int num) {
System.out.println("paramMethod run..." + str + ": " + num);
}
public static void staticMethod() {
System.out.println("staticMethod run ... ");
}
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;
}
public Person() {
super();
System.out.println("person run ...");
}
public Person(String name, int age) {
this.name = name;
this.age = age;
System.out.println("person param run ... name=" + name);
}
}
3.1.2 测试用例
/**
* 获取Class对象的三种方式
* 1.Object类中的getClass()方法,必须要明确具体的类,并且要创建对象,麻烦。
*/
@Test
public void getClassObject_1() {
Person person = new Person();
Class clazz = person.getClass();
Person person1 = new Person();
Class clazz1 = person1.getClass();
System.out.println(clazz == clazz1);
}
运行:
3.2 方式二:通过对象静态属性 .class来获取对应的Class对象
相对简单,但是还是需要先明确类中的静态成员。不够拓展。
/**
* 通过对象静态属性 .class来获取对应的Class对象
*/
public void getClassObject_2() {
Class clazz = Person.class;
}
3.3 方式三:只要通过给定类的字符串名称就可以获取该类,更为拓展,forName
/**
* 方式三:只要通过给定类的字符串名称就可以获取该类,更为拓展,forName
*/
@Test
public void getClassObject_3() throws ClassNotFoundException {
String className = "com.hw.bean.Person";
Class clazz = Class.forName(className);
System.out.println(clazz);
}
运行:
本章节源码: ReflectDemo
3、获取Class对象的三种方式的更多相关文章
- 反射:获取Class对象的三种方式
获取Class对象的三种方式 package lianxiApril18; /** * 获取Class对象的三种方式 * 1 Object ——> getClass(); * 2 任何数据类型( ...
- Java反射获取class对象的三种方式,反射创建对象的两种方式
Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...
- 反射应用和获取Class对象的三种方式
一.写一个"框架",可以创建任何对象运行任何方法 1.配置文件 2.使用类加载器ClassLoader,Properties集合是可以和IO流结合使用完成读取和写入数据的集合,方法 ...
- Java反射获取类对象的三种方式
package demo01; /* * 获取一个类的class文件对象的三种方式 * 1.对象获取 * 2.类名获取 * 3.Class类的静态方法获取 */ public class Reflec ...
- Java反射学习-2 - 获取Class对象的三种方式
package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import ...
- java webservice服务器端获取request对象的三种方式
有的时候在webservice里我们需要获取request对象和response对象,比如想要获得客户端的访问ip的时候就需要这么做,下面说三种方式,当然三种方式可能是针对不同方式部署webservi ...
- webservice服务器端获取request对象的三种方式
有的时候在webservice里我们需要获取request对象和response对象,比如想要获得客户端的访问ip的时候就需要这么做,下面说三种方式,当然三种方式可能是针对不同方式部署webservi ...
- Java反射机制(获取Class对象的三种方式+获取Class中的构造函数进行对象的初始化+获取反射类的字段+获取反射类的一般方法)
反射技术其实就是动态加载一个指定的类,并获取该类中的所有内容.而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员,简单来说:反射技术可以对一个类进行解剖,反射大大增强 ...
- jdbc 获取connection 对象的三种方式
获取数据库连接方法一:驱动实现类 //创建mysql的Driver对象 Driver driver=new com.mysql.jdbc.Driver(); //jdbc url 定位一个数据库: S ...
随机推荐
- soapUI对webservices进行压力测试
1.进行压力测试步骤 1.创建soap项目file--new soap project 为项目命名,输入wsdl,之后会出现下图 其中matchToApply是webservice对外提供访问的接口( ...
- RESTful接口开发规范
最近在研究restful,公司开发要使用,所以自己就去网上找了好些资料,并整理了一套公司开发的接口规范.当然,我也只是刚刚入坑.还不是很全面.但是这就是一个过程.一点点,总会好起来的.以下是就是RES ...
- 1234: 约瑟夫问题-输出最后的编号(Java)
WUSTOJ 1234: 约瑟夫问题-输出最后的编号 参考资料 约瑟夫问题--百度百科 Description n个人围成一圈,依次从1至n编号.从编号为1的人开始1至k报数,凡报数为k的人退出圈子, ...
- Django入门(上)
一.Web应用程序 1.web应用程序介绍 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件. 应用程序有两种模式 ...
- jacascript Math (算数)对象
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 实际应用中用的比较多的有:round(); random(); floor(); ceil(); 其次还有 ...
- hdu 6153 思维+扩展kmp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6153 扩展kmp不理解的看下:http://www.cnblogs.com/z1141000271/p ...
- (十四)SpringBoot之事务处理
一.简介 ssh ssm都有事务管理service层通过applicationContext.xml配置,所有service方法都加上事务操作: 用来保证一致性,即service方法里的多个dao操作 ...
- JS OOP -02 深入认识JS中的函数
深入认识JS中的函数: 1.概述,认识函数对象 2.函数对象和其他内部对象的关系 3.将函数作为参数传递 4.传递给函数的隐含参数:arguments 5.函数的apply,call方法和length ...
- js之拖拽事件
js之拖拽事件 api:https://www.runoob.com/jsref/event-ondrag.html 拖拽事件是js原生的事件,使用时在div上添加 draggable="t ...
- Ubuntu 其他命令
其他命令 目标 查找文件 find 软链接 ln 打包和压缩 tar 软件安装 apt-get 01. 查找文件 find 命令功能非常强大,通常用来在 特定的目录下 搜索 符合条件的文件 序号 命令 ...