当前位置: 首页 > news >正文

做网站交易平台石家庄网站建设方案咨询

做网站交易平台,石家庄网站建设方案咨询,程序员培训机构,WordPress5更改logo自己对反射的理解和应用还处于比较浅显的阶段#xff0c;写这篇文章更多在于整理总结#xff0c;也就是帮助自己进一步的理解和学习反射机制。反射反射的概念是由Smith在1982年首次提出的#xff0c;主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。java中类反…自己对反射的理解和应用还处于比较浅显的阶段写这篇文章更多在于整理总结也就是帮助自己进一步的理解和学习反射机制。反射反射的概念是由Smith在1982年首次提出的主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。java中类反射反射是 Java 程序开发语言的特征之一它允许运行中的 Java 程序对自身进行检查或者说“自审”并能直接操作程序的内部属性和方法。简单总结这些定义那就是反射可以让我们获得一个类的所有信息包括私有属性和私有方法对于我们这种小白先知道这点就可以啦那在java中如何使用发射呢。这里我们随便创建一个类来演示。比如说创建一个Book类public class Book implements Parcelable{private int id1;private String nameandroid;private String authorwf;private String getName(){return name;}}Book类中属性和方法都是私有的现在我们通过反射来访问这些属性和方法。String s null;try{Class bookClass Class.forName(cc.abto.demo.Book);//完整类名Object book bookClass.newInstance();//获得实例Method getAuthor bookClass.getDeclaredMethod(getName);//获得私有方法getAuthor.setAccessible(true);//调用方法前设置访问标志s (String) getAuthor.invoke(book);//使用方法}catch (Exception e){e.printStackTrace();}可以看到上面代码中我们用Class和Method这两个类完成了反射这两个类分别对应了类和方法也就是包装了类和方法的信息下面对反射的部分API做一下简单介绍Class类代表一个类位于java.lang包下Field类代表类的成员变量(成员变量也称为类的属性)Method类代表类的方法Constructor类代表类的构造方法Array类提供了动态创建数组以及访问数组的元素的静态方法在Java中每个class都有一个相应的Class对象。也就是说当我们编写一个类编译完成后在生成的.class文件中就会产生一个Class对象用于表示这个类的类型信息。 java中的Class三种获取方式//使用Class类的静态方法forName()用类的名字获取一个Class实例Class bookClass Class.forName(cc.abto.demo.Book);//利用对象调用getClass()方法获取该对象的Class实例Book book new Book();Class extends Book bookClass book.getClass();//运用.class的方式来获取Class实例对于基本数据类型的封装类还可以采用.TYPE来获取相对应的基本数据类型的Class实例Class bookClass Book.class;Class type Integer.TYPE;然后再贴一些常用的方法public Annotation[] getAnnotations () //获取这个类中所有注解getClassLoader() //获取加载这个类的类加载器getDeclaredMethods() //获取这个类中的所有方法getReturnType() //获取方法的返回类型getParameterTypes() //获取方法的传入参数类型isAnnotation() //测试这类是否是一个注解类getDeclaredConstructors() //获取所有的构造方法getDeclaredMethod(String name, Class… parameterTypes)// 获取指定的构造方法(参数参数类型.class)getSuperclass() //获取这个类的父类getInterfaces()// 获取这个类实现的所有接口getFields() //获取这个类中所有被public修饰的成员变量getField(String name) //获取指定名字的被public修饰的成员变量newInstance() //返回此Class所表示的类通过调用默认的(即无参数)构造函数创建的一个新实例更多的方法和方法的注解大家可以查看文档。Android中的简单应用查看Android SDK的源码时候。你会发现很多类或方法中经常加上了“hide”注释标记这些API是不允许在程序中调用的。Hidden API之所以被隐藏是想阻止开发者使用SDK中那些未完成或不稳定的部分(接口或架构)。如图所示所以在开发中我们不仅可以通过反射获取私有属性和方法也可以利用反射获取一些SDK对外部隐藏的API比如说前阵子在做蓝牙开发的时候自动配对的一些方法在API 19以后才对外开放的这边我们就可以使用反射来实现配对功能了try{Class bluetoothDeviceClass BluetoothDevice.class;bluetoothDeviceClass.getMethod(setPin, byte[].class).invoke(device, 1234.getBytes());bluetoothDeviceClass.getMethod(createBond).invoke(device);bluetoothDeviceClass.getMethod(setPairingConfirmation, boolean.class).invoke(device, true);bluetoothDeviceClass.getMethod(cancelPairingUserInput).invoke(device);}catch (Exception e){e.printStackTrace();}反射的好处反射不仅可以让我们获得隐藏的方法和属性还可以让对象的实例化从编译时转化为运行时因为我们可以通过Class.forName(cc.abto.demo.Book).newInstance()的方法来生成新的实例而这边的cc.abto.demo.Book是一个字符串完全可以用变量来代替再结合抽象工厂模式什么的我们就可以很大程度上对程序应用中的功能模块进行解耦合。可能这边简单几句没能解释清楚大家可以看看《大话设计模式》之类的书里面就介绍的比较清楚明白了。反射的弊端反射带来的两大弊端可能就是安全和性能问题了吧这方面我知之甚少有待进一步的了解和学习。最后
http://www.pierceye.com/news/4026/

相关文章:

  • 建设网站需要做app吗工控界面设计
  • 网站空间商排名微网站如何建设
  • 产品网站建站wordpress thesis 开发
  • 如何选择购物网站建设网站首页添加标签
  • 网站标题切换到哪里做网站
  • 福建银瑞建设工程有限公司网站网站建设发货流程图
  • 工程信息网站有哪些免费制作商标
  • 网站建设栏目流程旅游网站开发成本包括
  • 网站备案和前置审批wordpress linux密码
  • 青海省住房建设厅网站首页h5海报是什么意思
  • 网站建设叁金手指花总7博罗网站建设
  • 汕头免费建站公司网站开发成本包括
  • 建筑业企业资质标准建设部网站百度竞价推广的优势
  • 如何用oss做视频网站自建网站平台有哪些
  • 网站导航条网站 mvc 设计
  • 医院网站建设联系方式利用百度网盘自动播放做视频网站
  • 百度医院网站建设佛山seo按效果付费
  • 公司外贸网站怎么做建筑工程网线接头规范
  • 做一个好一点网站费用多少外贸网站优化免费渠道
  • 公司做网站需要哪些步骤免费建网站最新视频教程
  • 做公司网站方案wordpress 移动模板下载
  • 北京商城网站建设公司找柳市做网站
  • 印刷东莞网站建设技术支持完整的app网站开发
  • 做网站意义和目的简历做的很棒的网站
  • 做qq图片的网站软件正版化情况及网站建设情况
  • 网站缩写的英文国内最大ae模板下载网站
  • 学做网站培训班要多少钱东莞哪里可以学网络营销
  • 培训网站免费专业的企业进销存软件制造厂家
  • 做网站排行dede后台做两个网站
  • 花生壳怎么建设网站给女朋友做的网站