Java中关于类.Class()、对象.getCalss、对象.getClass().getName()的区别

1.获取Class对象的三种方式

    ①通过类名获取       类名.class

    ②通过对象获取      对象名.getClass()

    ③通过全限定类名获取(必须添加完整包名)

	public static void main(String[] args) {

		List list = new ArrayList();
		
		System.out.println(List.class);//interface java.util.List
		
		/*
		 * list.getClass()返回值为一个Class类的对象,
		 * 在输出时,自动调用Class类中的toString()方法,做相关逻辑处理,
		 * 然后输出interface java.util.List或者class java.util.ArrayList等字符串
		 */
		System.out.println(list.getClass());//class java.util.ArrayList
		
		//list.getClass().getName()返回值为一个字符串
		System.out.println(list.getClass().getName());//java.util.ArrayList
		System.out.println(ArrayList.class);//class java.util.ArrayList
		
		System.out.println(List.class == list.getClass());//false
		System.out.println(list.getClass() == ArrayList.class );//true
		

	}

2.反射

     Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的內部信息,并能直接操作任意对象的内部属性及方法。

  Java反射机制主要提供了以下功能:

  • 在运行时构造任意一个类的对象
  • 在运行时获取任意一个类所具有的成员变量和方法
  • 在运行时调用任意一个对象的方法(属性)
  • 生成动态代理

 

  Class 是一个类; 一个描述类的类.

        封装了描述方法的 Method,

              描述字段的 Filed,

              描述构造器的 Constructor 等属性.

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值