自动化测开基础(java 反射)

•什么是动态编程语言?
•答:程序运行时,允许改变程序结构或变量类型——这种语言称为动态语言
–从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言
–Java有着一个非常突出的动态相关机制:Reflection

反射的概念

在运行状态中,对于任意一个类,都能够知道其所有属性和方法;对于任意一个对象,都能够调用其任意一个方法;
——这种动态获取信息以及动态调用对象的方法的功能称为Java语言的反射机制

1在运行时判断任意一个对象所属的类
2•在运行时构造任意一个类的对象
3•在运行时判断任意一个类所具有的成员变量和方法
4•在运行时调用任意一个对象的方法
5•生成动态代理

 •Class:类的实例表示正在运行的 Java 应用程序中的类和接口
•Field:提供有关类或接口的属性的信息,以及对它的动态访问权限
•Constructor:提供关于类的单个构造方法的信息以及对它的访问权限
•Method:提供关于类或接口上单独某个方法

反射的简单使用

//什么叫反射
public class Testo2 extends object{public static void main(string[] args)
throws classNotFoundException {
//通过反射获取类的class对象Class
cl=Class.forName("com.kuang.reflection.User");
System.out.println(cl);
Class c2 =Class.forName("com.kuang.reflection.User");
Class c3=class.forName("com.kuang.reflection.User");
Class c4=Class.forName("com.kuang.reflection.User");
//一个类在内存中只有一个class对象
//一个类被加载后 ,类的整个结构都会被封装在class对象中,
System.out.println(c2.hashCode());
System.out.println(c3.hashCode());
System.out.println(c4.hashCode());
}
}
//实体类:pojo ,entity
class User{...}

缺点:降低性能使用反射基本上是一种解释操作,您可以告诉JVM您希望做什么
并且它满足您的要求。这类操作总是慢于直接执行相同的操作

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值