Java反射获取字节码以及判断类型
一、获取类的字节码的三种方法:
1.使用Class.class
Class<?> c1=String.class;
2.使用实例.getClass()
String s=new String("1"); Class<?> c2=s.getClass();
3.使用Class.forName("类全名");
Class<?> c3 = Class.forName("java.lang.String");
二、判断字节码是不是基本类型
//判断是不是基本类型
System.out.println(c1.isPrimitive());//false
三、判断是不是数组:
//判断是不是数组 System.out.println(String[].class.isArray());//true
四、判断基本类型的详细类型
// 判断是不是int 基本类型 System.out.println(int.class==Integer.TYPE);
完整代码
package cn.lonecloud.Test; import org.junit.Test; public class ClassTest { @Test
public void ClassTest() throws ClassNotFoundException{
//获取类的字节码的三种方法:
//1.使用Class.class
Class<?> c1=String.class;
// 2.使用实例.getClass()
String s=new String("1");
Class<?> c2=s.getClass();
// 3.使用Class.forName("类全名");
Class<?> c3 = Class.forName("java.lang.String");
System.out.println(c1==c2);//true
System.out.println(c2==c3);//true
System.out.println(c1==c3);//true
// 获取基本类型的字节码
System.out.println(int.class);//int
//基本类型的字节码和其包装类是不一样的
System.out.println(Integer.class==int.class);//false
//判断是不是基本类型
System.out.println(c1.isPrimitive());//false
//判断是不是数组
System.out.println(String[].class.isArray());//true
// 判断是不是int 基本类型
System.out.println(int.class==Integer.TYPE);
}
}
Java反射获取字节码以及判断类型的更多相关文章
- 反射概述和反射获取字节码Class对象的三种方式
反射:框架设计的灵魂 框架:半成品软件.可以在框架的基础上进行软件开发,简化变法 反射:将类的各个组成部分封装为其他对象,这就是反射机制 好处: 1.可以在程序运行的过程中操作这些对象. 2.可以解耦 ...
- java利用反射获取类的属性及类型
java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ...
- Java虚拟机--虚拟机字节码执行引擎
Java虚拟机--虚拟机字节码执行引擎 所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果. 运行时栈帧结构 用于支持虚拟机进行方法调用和方 ...
- Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别
Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别 在工作中遇到一个问题,就是你需要去判断某个字符串是不是对象的某个成员属性名,然后根据判断结果 ...
- 深入浅出Java探针技术1--基于java agent的字节码增强案例
Java agent又叫做Java 探针,本文将从以下四个问题出发来深入浅出了解下Java agent 一.什么是java agent? Java agent是在JDK1.5引入的,是一种可以动态修改 ...
- Java反射获取class对象的三种方式,反射创建对象的两种方式
Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...
- java编译后字节码解析
java编译后字节码解析 参考网摘: https://my.oschina.net/indestiny/blog/194260
- jbe 可以用来修改Java class的字节码,配合jd-gui 使用
jbe 可以用来修改Java class的字节码,配合jd-gui 使用
- java反射获取类的类名、属性名、属性类型、方法、执行方法、构造函数
public class Demo02 { @SuppressWarnings("all") public static void main(String[] args) thro ...
随机推荐
- oracle03
(1)表中数据操作 插入数据: a.插入单条 insert into myemp(empno,ename) values(1111,'张三'); b.批量插入 insert into myemp se ...
- Linux普通用户修改owner非本人文件为什么成功
关键字:错误提示:E45 已设定选项’readonly’(请加!强制执行) Linux对文件和目录有很好的权限管理,但今天遇到一个比较诡异的事情,普通用户对文件权限不可写,但可以强制保存该文件,这样就 ...
- javabean内省
何为JavaBean? JavaBean 是一种JAVA语言写成的可重用组件.为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器.JavaBean 通过提供符合一致性设计模式的公共 ...
- Eclipse设置代码自动提示
Eclipse只需几步简单的设置就可以像idea那样代码自动提示了,喜欢的小伙伴可以赶紧动手设置,提升效率. 第一步:打开Eclipse --> Window --> Preference ...
- Spring中Quartz的配置及corn表达式
Quartz可以用来执行任务调度功能,如间隔一定时间调用执行任务.用起来还是蛮方便的.只要将你要调用的类配置到Spring配置文件即可. 在Spring的配置文件中配置Quartz. <!-- ...
- python异步加协程获取比特币市场信息
目标 选取几个比特币交易量大的几个交易平台,查看对应的API,获取该市场下货币对的ticker和depth信息.我们从网站上选取4个交易平台:bitfinex.okex.binance.gdax.对应 ...
- cell数组
问题: (注意,matlab判断一个数的类型的函数是class(var)) 如果p为一个数,那么h(1)=p,是没有问题的. 如果p为一个向量,那么h(1,:)=p是没有问题的. 如果p是一个矩阵的 ...
- 循环while 、do…while 、for
循环while .do-while .for 循环结构的选择? - 当对一个条件进行一次判断时,用if语句: - 当对一个条件进行多次判断时,用while语句: 1.While 循环条件成立就会执行循 ...
- Java中的最值
Double.MAX_VALUE 等于 (2-2^(-52)) * 2^1023 约等于2^1024Double.MIN_VALUE 最小正非零值 2^(-1074)Long.MAX ...
- OpenStack和Hadoop的区别
其实,OpenStack和Hadoop不是同一个层次的东西,无法比较,非要说出个区别,那就是:OpenStack是云计算管理平台,应该是属于系统级别的软件,它的主体思想是把资源进行分离,给不同的用户提 ...