首页 > 代码库 > 反射机制(1)认识Class类
反射机制(1)认识Class类
认识Class类:
正常情况下,必须指定类的完整路径才能实例化对象,但是java中也允许通过一个对象找到其所在类的信息。这实际就是class类的功能。
package 类集; class X{ }; public class test1{ public static void main(String args[]){ X x = new X() ; // 实例化X类的对象 System.out.println(x.getClass().getName()) ; // 得到对象所在的类 } }
运行结果:
类集.X
object类有如下优点:
CLASS类
Class本身表示一个类本身,通过class可以得到一个类中完整结构,包括此类的方法定义,方法属性等。
常用方法:
实例化class类对象的三种方法:
1,通过forName(包。类名称)方法。
2,类。class
3,对象。getClass()
一,其中forName定义如下:实例化是forName(包.类名称)
public static Class<?> forName(String className) throws ClassNotFoundException
可见,使用forName()需要处理异常。
二,getClass()是object类的方法,对象.getClass()。
三,类。class。
四,通过getName(),可以获取类名称。
如下例子:
package 类集; class X{ }; public class test1{ public static void main(String args[]){ Class<?> c1 = null ; // 指定泛型 Class<?> c2 = null ; // 指定泛型 Class<?> c3 = null ; // 指定泛型 try{ // 以下的操作形式是在开发中最常用的一种形式 c1 = Class.forName("类集.X") ; //forName(包.类名称) }catch(ClassNotFoundException e){ e.printStackTrace() ; } c2 = new X().getClass() ; // 通过Object类中的方法实例化 c3 = X.class ; // 通过类.class实例化 System.out.println("类名称:" + c1.getName()) ; // 得到类的名称 System.out.println("类名称:" + c2.getName()) ; // 得到类的名称 System.out.println("类名称:" + c3.getName()) ; // 得到类的名称 } }
一旦实例化Class类后,即可进行反射的进一步操作。
总结
1,了解class类的作用:反射源头,
2,三种class类的实例化方式,要以forName()重点掌握,还有 类.class
反射机制(1)认识Class类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。