Java反射机制常用API

2016-12-08 00:00:00嘉辉 ACCP培训

  Class是Reflection故事起源。针对任何您想探勘的class,唯有先为它产生一个Class object,接下来才能经由它唤起为数十多个的Reflection APIs。首先看看Class,反射的核心类,所有的操作都是围绕该类来生成的。

  Java允许我们从多种管道为一个class生成对应的Class object:

  Java代码

  //运用Class.forName()

  Class c1 = Class.forName("java.lang.String");

  //运用getClass(),每个object都有此方法

  String str = "abc";

  Class c2 = str.getClass();

  //运用getSuperclass(),每个class对象都有此方法

  Button b = new Button();

  Class c3 = b.getClass();

  Class c4 = c3.getSuperclass();

  //运用.class 语法

  Class c5 = String.class;

  Class c6 = Integer.class;//java.lang.Integer

  Class c7 = java.awt.Button.class;

  Class c8 = int.class;//Integer.TYPE==int.class

  Class c9 = int[].class;

  //运用primitive wrapper classes(原始包装类)的TYPE语法

  Class c10 = Integer.TYPE;//表示基本类型int的Class实例,与int.class返回结果一样

  Class c11 = Byte.TYPE;

  Class c12 = Character.TYPE;

  Class c13 = Short.TYPE;

  Class c14 = Boolean.TYPE;

  Class c15 = Long.TYPE;

  Class c16 = Float.TYPE;

  Class c17 = Double.TYPE;

  Class c18 = Void.TYPE;

  Java的访问控制

  public, protected, private这些限定符和C++一样。

  对于一个类来说,JAVA有package限定和public限定。一个.java文件是JAVA的编译单元,必须是含有唯一的public类,代表了这个编译单元对于其他的编译单元的接口。而其他的class都是package限定。然而这一点并没有在C++上增加任何东西。C++的编译单元是.obj文件。另一个编译单元在编译的时候,只要包含相对应的头文件,就能访问其中定义的类。但是你完全可以将一些类的定义放在实现文件中,保持你的头文件只有一个类的定义。那么你的编译单元对外就只有一个接口了。

[ACCP培训]相关推荐

[ACCP培训]相关栏目推荐
查看更多
上一篇:ACCP软件工程师就业前景怎么样 下一篇:如何用HOOK函数关闭IE广告窗口