反射机制/获取Class对象的三种方式

Class 反射机制/获取Class对象的三种方式

条条大路通罗马——殊途同归

任何对象的创建都依赖于字节码,反射必要获取字节码对象

  • 方式一

是最为熟悉的Object类中的getClass()方法,能够完成自己所属的字节码对象的获取。

人所共知:使用该方式,必要明确具体的类,并创建对象!

该方式示例↓

	public void Test() {
		TestFunction  testFunction1 = new TestFunction();
	 	Class calzz1 = testFunction.getClass();
	 	
	 	TestFunction  testFunction2 = new TestFunction();
	 	Class calzz2 = testFunction.getClass();
	 	
	 	System.out.println(clazz1 == clazz2);
	
	 	//证明:输出值为true,上面对象的创建都依赖于同一class完成
	}
  • 方式二

是通过静态属性.class 获取对应的Class对象。

人所共知:需要明确类中的静态成员!

该方式示例↓

public void Test() {
	Class clazz = TestFunction.class;
}
  • 方式三

是通过描述字节码文件的Class类中的forName(String className)方法完成

人所共知:有Class名称即可,可在配置文件里对参数名称进行修改,更灵活

该方式示例↓

public void Test() throws ClassNotFoundExcepition {
	
		// ClassName为字符串表现形式,与是否导包无关系
		String className = "(‘class文件的路径’)";	// cn.test.TestFunction
		
		Class clazz = Class.forName(className);
}

若Class文件的路径名称有误,在类加载时未能找到此类,将抛出传说中著名的ClassNotFoundExcepition异常。

this需编辑时,将被继承重写ヾ(๑╹◡╹)ノ"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值