JavaRTTI和反射基本讲解
来源:互联网 发布:常用理财软件 编辑:程序博客网 时间:2024/06/05 15:45
public class Test {public static void main(String[] args) {new Shape().draw();//每一个类都对应一个Class对象 我们获取这个对象之后,可以进行一系列的操作Class class1=new Shape().getClass();System.out.println(class1.getName());System.out.println(class1.getSimpleName());System.out.println(class1.getCanonicalName());System.out.println(class1.getSuperclass());System.out.println(class1.getInterfaces());System.out.println(class1.isInterface());try {System.out.println(class1.newInstance());} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}//用类字面常量的方式获取Class对象Class class2=Shape.class;System.out.println(class1==class2);System.out.println(class1.equals(class2));System.out.println(byte.class);System.out.println(short.class);System.out.println(int.class);System.out.println(long.class);System.out.println(char.class);System.out.println(float.class);System.out.println(double.class);System.out.println(boolean.class);System.out.println(Integer.class);System.out.println(Integer.TYPE);//class对象与泛型的结合//判断对象是不是某个类型System.out.println(new Shape() instanceof Shape);//这种方式也可以System.out.println(class1.isInstance(new Shape()));//传统的RTTI要求我们在编译时就知道所有的类的信息//如果运行时获取类型的信息,就是反射,或者说基于RMI,远程方法调用//反射机制并没有什么神奇之处,当通过反射与一个未知的对象打交道时,JVM只是简单的检查这个对象,看它属于哪个特定的类,就想RTTI那样//在用它做其他事情之前,必须先加载那个类的Class对象,因此,那个类的.class文件对于JVM来说必须是可获取的,要么在本地机器,要么//通过网络获得,所以RTTI和反射真正的区别在于,对于RTTI来说,是在编译期间打开和检查.class文件,可以用普通的方法调用对象的所有方法//而对于反射机制来说,.class文件在编译时是不可获取的,所以是运行时打开和检查.class文件}}class Shape{public void draw(){System.out.println(this);}public String toString(){return "测试RTTI";}}
0 0
- JavaRTTI和反射基本讲解
- 网络编程和反射--简单讲解
- 八种基本算法和代码讲解
- java 基本类型和常量讲解
- JAVA平台介绍和基本数据类型讲解
- Java基本类型和常量讲解
- ffmpeg 术语讲解和基本用法
- 网络流讲解和基本实现
- 线程中存在的问题和反射讲解
- C#反射实例讲解
- C#反射实例讲解
- C#反射实例讲解
- C#反射实例讲解
- C#反射实例讲解
- C#反射实例讲解
- C#反射实例讲解
- C#反射实例讲解
- C#反射实例讲解
- Android开发中屏幕适配解决方案
- c语言中的字符操作
- 【HDU 5908 Abelian Period】
- Java基本集合类关系图
- recyclerView动画解读
- JavaRTTI和反射基本讲解
- Android笔试面试题一(常考选择填空)
- MFC 缩放和显示IplImage
- 利用string 字符串拷贝
- C语言初学者感想
- a+b (c语言)
- cmd下javac 错误: 编码GBK的不可映射字符
- ANGULARJS表单的错误处理
- 【5907Find Q】