您的位置:首页 > 编程语言 > Java开发

Java反射机制(1)

2015-11-02 21:09 357 查看
Java程序中的各个Java类属于同一类事物,描述这一类事物的Java类名就是Class。

Class class1;中class1就是一份对应相关类型的字节码;

获取该份字节码的方式有以下三种(下面就以String为例子来作说明):

方式一: Class cls1 = String.class

方式二:String str1 = new String();//先获取当前String的对像

Class cls2 = str1.getClass();//根据当前String的对象调用该对象的特有的获取String字节码的方法.getClass()获取一份String的字节码,当然,方式一和方式二获取的字节码都是同一份字节码,都是String的字节码

方式三:Class cls3 = Class.forName("java.lang.String");//首先去内存中搜寻有没有String这份字节码,如果没有,那么此时重新加载一份到Java虚拟机中。

以上三种方式获取的都是同一份String 的字节码,所以此时cls1 ==cls2 为true,另外的cls2==cls3也为true

另外的几个基本类型获取字节码的方式可以这样,如下:

Class cls = Integer.TYPE;

Class cls1 = Byte.TYPE;

Class cls2 = Long.TYPE;

Class cls3 = Short.TYPE;

Class cls4 = Double.TYPE;

Class cls5 = Boolean.TYPE;

Class cls6 = Character.TYPE;

Class cls7 = Float.TYPE;

Class cls8 = Void.TYPE;

另外的判断是否为基本类型的字节码,可以通过这样的方式去判断:

例如:int.class.isPrimitive();此时返回的应该是true,int是一个基本类型

判断一个字节码是否为数组的字节码的方式可以是这样:

例如:int[].class.isArray(); 其他的判断的说明可以参见API
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: