reflect反射机制、Date日期以及Lambda表达式(Java SE第三阶段10)

目录

reflect反射机制

Class类

使用class来快速实例化其表示的类的实例

利用反射动态调用方法

调用有参方法

变长参数特性

测试类Person

Date

Lbmbda表达式


reflect反射机制


 反射是一种动态机制,允许我们在代码运行期间来决定实例化对象,调用方法,操作属性等。
 反射可以提高代码的灵活度,但是会降低执行效率。
 反射应当在程序中起到“画龙点睛”的作用,而不应当过度依赖反射。

Class类


   Class类 称为:类的对象
   Class类的每一个实例是用于描述JVM已经加载的一个类的,并且JVM内部每个加载的类都有且只有一个Class实例与之对应。
   我们通过类对象可以获取其表示的类的一切信息(类名,有哪些方法,属性等)。
   因此反射离不开这个类。使用反射的第一步就是获取一个类的类对象,而获取方式有三种:
          1.类名.class
           每个类都可以以这种方式获取类对象,此种写法简单明了,但缺点是不灵活,例如:
           Class cls = String.class; 获取String的类对象
            Class cls = int.class; 获取int的类对象
            Class cls = Object.class;
            
          2.Class.forName(String name)
            Class提供了一个静态方法forName,可以传入要加载的类的完全限定名(包名.类名)来获取该类的类对象
            Class cls = Class.forName("java.lang.String")
            
          3.类加载器ClassLoader形式
        

package reflect;

import java.lang.reflect.Method;

public class ReflectDemo1 {

	public static void main(String[] args) throws ClassNotFoundException{
	//获取Person类的类对象
//		Class cls = Person.class;不常用
		
		Class cls = Class.forName("reflect.Person");
		// 获取类名
		String name = cls.getName();
		System.out.println(name);
		
		//获取该类的所有方法,包括超类Object继承下来的方法
//		Method[] methods = cls.getMethods();
		//获取该类自己定义的所有方法
		Method[] methods = cls.getD
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值