Home Tags Posts tagged with "Reflection"

Reflection

其中getClass()与.class有如下区别:

两者最直接的区别就是,getClass()是一个类的实例所具备的方法,而class()方法是一个类的方法。
另外getClass()是在运行时才确定的,而class()方法是在编译时就确定了。

参考链接:http://yangbili.co/getclass%e5%92%8cclass%ef%bc%88%ef%bc%89%e7%9a%84%e5%8c%ba%e5%88%ab/

java中获取Class对象的五种方法总结:

1)运用getClass()
注:每个class 都有此函数
String str = “abc”;
Class c1 = str.getClass();

2)运用 Class.getSuperclass()
Button b = new Button();
Class c1 = b.getClass();
Class c2 = c1.getSuperclass();

3)Class.forName()
(最常被使用)
Class c1 = Class.forName(“java.lang.String”);
Class c2 = Class.forName(“java.awt.Button”);

4)运用 .class语法
Class c1 = String.class;

5)运用 primitivewrapper classes 的TYPE 语法
Class c1 = Boolean.TYPE;
Class c2 = Byte.TYPE;
Class c3 = Character.TYPE;
Class c4 = Short.TYPE;
Class c5 = Integer.TYPE;
Class c6 = Long.TYPE;
Class c7 = Float.TYPE;
Class c8 = Double.TYPE;
Class c9 = Void.TYPE;
————————————————

总结:

  1. 知道对象通过.getClass()
  2. 知道包名通过forname
  3. 知道类通过.class
  4. 知道子类通过.getSuperclass()