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

天津教育网站官网seo推广的特点

天津教育网站官网,seo推广的特点,seo如何去做优化,安装系统后没有wordpress定义 JAVA反射机制是在运行状态中#xff0c;对于任意一个类#xff0c;都能够知道这个类的所有属性和方法#xff1b;对于任意一个对象#xff0c;都能够调用它的任意方法和属性#xff1b;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 1. 反射机… 定义 JAVA反射机制是在运行状态中对于任意一个类都能够知道这个类的所有属性和方法对于任意一个对象都能够调用它的任意方法和属性这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 1. 反射机制的相关类 与Java反射相关的类如下 类名用途Class类代表类的实体在运行的Java应用程序中表示类和接口Field类代表类的成员变量成员变量也称为类的属性Method类代表类的方法Constructor类代表类的构造方法 Class类 Class代表类的实体在运行的Java应用程序中表示类和接口。在这个类中提供了很多有用的方法这里对他们简单的分类介绍。 2. 获得类相关的方法 方法用途asSubclass(Class clazz)把传递的类的对象转换成代表其子类的对象Cast把对象转换成代表类或是接口的对象getClassLoader()获得类的加载器getClasses()返回一个数组数组中包含该类中所有公共类和接口类的对象getDeclaredClasses()返回一个数组数组中包含该类中所有类和接口类的对象forName(String className)根据类名返回类的对象getName()获得类的完整路径名字newInstance()创建类的实例getPackage()获得类的包getSimpleName()获得类的名字getSuperclass()获得当前类继承的父类的名字getInterfaces()获得当前类实现的类或是接口 3. 获得类中属性相关的方法 方法用途getField(String name)获得某个公有的属性对象getFields()获得所有公有的属性对象getDeclaredField(String name)获得某个属性对象getDeclaredFields()获得所有属性对象 4. 获得类中注解相关的方法 方法用途getAnnotation(Class annotationClass)返回该类中与参数类型匹配的公有注解对象getAnnotations()返回该类所有的公有注解对象getDeclaredAnnotation(Class annotationClass)返回该类中与参数类型匹配的所有注解对象getDeclaredAnnotations()返回该类所有的注解对象 5. 获得类中构造器相关的方法 方法用途getConstructor(Class…? parameterTypes)获得该类中与参数类型匹配的公有构造方法getConstructors()获得该类的所有公有构造方法getDeclaredConstructor(Class…? parameterTypes)获得该类中与参数类型匹配的构造方法getDeclaredConstructors()获得该类所有构造方法 6. 获得类中方法相关的方法 方法用途getMethod(String name, Class…? parameterTypes)获得该类某个公有的方法getMethods()获得该类所有公有的方法getDeclaredMethod(String name, Class…? parameterTypes)获得该类某个方法getDeclaredMethods()获得该类所有方法 7. 类中其他重要的方法 方法用途isAnnotation()如果是注解类型则返回trueisAnnotationPresent(Class? extends Annotation annotationClass)如果是指定类型注解类型则返回trueisAnonymousClass()如果是匿名类则返回trueisArray()如果是一个数组类则返回trueisEnum()如果是枚举类则返回trueisInstance(Object obj)如果obj是该类的实例则返回trueisInterface()如果是接口类则返回trueisLocalClass()如果是局部类则返回trueisMemberClass()如果是内部类则返回true 8. Field类 Field代表类的成员变量成员变量也称为类的属性。 方法用途equals(Object obj)属性与obj相等则返回trueget(Object obj)获得obj中对应的属性值set(Object obj, Object value)设置obj中对应属性值 9. Method类 Method代表类的方法。 方法用途invoke(Object obj, Object… args)传递object对象及参数调用该对象对应的方法 10. Constructor类 Constructor代表类的构造方法。 方法用途newInstance(Object… initargs)根据传递的参数创建类的对象 示例 为了演示反射的使用首先构造一个与书籍相关的model——Book.java然后通过反射方法示例创建对象、反射私有构造方法、反射私有属性、反射私有方法最后给出两个比较复杂的反射示例——获得当前ZenMode和关机Shutdown。 被反射类Book.java public class Book{private final static String TAG BookTag;private String name;private String author;Overridepublic String toString() {return Book{ name name \ , author author \ };}public Book() {}private Book(String name, String author) {this.name name;this.author author;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author author;}private String declaredMethod(int index) {String string null;switch (index) {case 0:string I am declaredMethod 1 !;break;case 1:string I am declaredMethod 2 !;break;default:string I am declaredMethod 1 !;}return string;} }反射逻辑封装在ReflectClass.java public class ReflectClass {private final static String TAG peter.log.ReflectClass;// 创建对象public static void reflectNewInstance() {try {Class? classBook Class.forName(com.android.peter.reflectdemo.Book);Object objectBook classBook.newInstance();Book book (Book) objectBook;book.setName(Android进阶之光);book.setAuthor(刘望舒);Log.d(TAG,reflectNewInstance book book.toString());} catch (Exception ex) {ex.printStackTrace();}}// 反射私有的构造方法public static void reflectPrivateConstructor() {try {Class? classBook Class.forName(com.android.peter.reflectdemo.Book);Constructor? declaredConstructorBook classBook.getDeclaredConstructor(String.class,String.class);declaredConstructorBook.setAccessible(true);Object objectBook declaredConstructorBook.newInstance(Android开发艺术探索,任玉刚);Book book (Book) objectBook;Log.d(TAG,reflectPrivateConstructor book book.toString());} catch (Exception ex) {ex.printStackTrace();}}// 反射私有属性public static void reflectPrivateField() {try {Class? classBook Class.forName(com.android.peter.reflectdemo.Book);Object objectBook classBook.newInstance();Field fieldTag classBook.getDeclaredField(TAG);fieldTag.setAccessible(true);String tag (String) fieldTag.get(objectBook);Log.d(TAG,reflectPrivateField tag tag);} catch (Exception ex) {ex.printStackTrace();}}// 反射私有方法public static void reflectPrivateMethod() {try {Class? classBook Class.forName(com.android.peter.reflectdemo.Book);Method methodBook classBook.getDeclaredMethod(declaredMethod,int.class);methodBook.setAccessible(true);Object objectBook classBook.newInstance();String string (String) methodBook.invoke(objectBook,0);Log.d(TAG,reflectPrivateMethod string string);} catch (Exception ex) {ex.printStackTrace();}}// 获得系统Zenmode值public static int getZenMode() {int zenMode -1;try {Class? cServiceManager Class.forName(android.os.ServiceManager);Method mGetService cServiceManager.getMethod(getService, String.class);Object oNotificationManagerService mGetService.invoke(null, Context.NOTIFICATION_SERVICE);Class? cINotificationManagerStub Class.forName(android.app.INotificationManager$Stub);Method mAsInterface cINotificationManagerStub.getMethod(asInterface,IBinder.class);Object oINotificationManager mAsInterface.invoke(null,oNotificationManagerService);Method mGetZenMode cINotificationManagerStub.getMethod(getZenMode);zenMode (int) mGetZenMode.invoke(oINotificationManager);} catch (Exception ex) {ex.printStackTrace();}return zenMode;}// 关闭手机public static void shutDown() {try {Class? cServiceManager Class.forName(android.os.ServiceManager);Method mGetService cServiceManager.getMethod(getService,String.class);Object oPowerManagerService mGetService.invoke(null,Context.POWER_SERVICE);Class? cIPowerManagerStub Class.forName(android.os.IPowerManager$Stub);Method mShutdown cIPowerManagerStub.getMethod(shutdown,boolean.class,String.class,boolean.class);Method mAsInterface cIPowerManagerStub.getMethod(asInterface,IBinder.class);Object oIPowerManager mAsInterface.invoke(null,oPowerManagerService);mShutdown.invoke(oIPowerManager,true,null,true);} catch (Exception ex) {ex.printStackTrace();}}public static void shutdownOrReboot(final boolean shutdown, final boolean confirm) {try {Class? ServiceManager Class.forName(android.os.ServiceManager);// 获得ServiceManager的getService方法Method getService ServiceManager.getMethod(getService, java.lang.String.class);// 调用getService获取RemoteServiceObject oRemoteService getService.invoke(null, Context.POWER_SERVICE);// 获得IPowerManager.Stub类Class? cStub Class.forName(android.os.IPowerManager$Stub);// 获得asInterface方法Method asInterface cStub.getMethod(asInterface, android.os.IBinder.class);// 调用asInterface方法获取IPowerManager对象Object oIPowerManager asInterface.invoke(null, oRemoteService);if (shutdown) {// 获得shutdown()方法Method shutdownMethod oIPowerManager.getClass().getMethod(shutdown, boolean.class, String.class, boolean.class);// 调用shutdown()方法shutdownMethod.invoke(oIPowerManager, confirm, null, false);} else {// 获得reboot()方法Method rebootMethod oIPowerManager.getClass().getMethod(reboot,boolean.class, String.class, boolean.class);// 调用reboot()方法rebootMethod.invoke(oIPowerManager, confirm, null, false);}} catch (Exception e) {e.printStackTrace();}} }调用相应反射逻辑方法try {// 创建对象ReflectClass.reflectNewInstance();// 反射私有的构造方法ReflectClass.reflectPrivateConstructor();// 反射私有属性ReflectClass.reflectPrivateField();// 反射私有方法ReflectClass.reflectPrivateMethod();} catch (Exception ex) {ex.printStackTrace();}Log.d(TAG, zenmode ReflectClass.getZenMode());Log输出结果如下 08-27 15:11:37.999 11987-11987/com.android.peter.reflectdemo D/peter.log.ReflectClass: reflectNewInstance book Book{nameAndroid进阶之光, author刘望舒} 08-27 15:11:38.000 11987-11987/com.android.peter.reflectdemo D/peter.log.ReflectClass: reflectPrivateConstructor book Book{nameAndroid开发艺术探索, author任玉刚} 08-27 15:11:38.000 11987-11987/com.android.peter.reflectdemo D/peter.log.ReflectClass: reflectPrivateField tag BookTag 08-27 15:11:38.000 11987-11987/com.android.peter.reflectdemo D/peter.log.ReflectClass: reflectPrivateMethod string I am declaredMethod 1 ! 08-27 15:11:38.004 11987-11987/com.android.peter.reflectdemo D/peter.log.ReflectDemo: zenmode 0总结 本文列举了反射机制使用过程中常用的、重要的一些类及其方法更多信息和用法需要近一步的阅读Google提供的相关文档和示例。 在阅读Class类文档时发现一个特点以通过反射获得Method对象为例 一般会提供四种方法: getMethod(parameterTypes)getMethods()getDeclaredMethod(parameterTypes)getDeclaredMethods() getMethod(parameterTypes)用来获取某个公有的方法的对象getMethods()获得该类所有公有的方法getDeclaredMethod(parameterTypes)获得该类某个方法getDeclaredMethods()获得该类所有方法。带有Declared修饰的方法可以反射到私有的方法没有Declared修饰的只能用来反射公有的方法。其他的Annotation、Field、Constructor也是如此。
http://wiki.neutronadmin.com/news/193550/

相关文章:

  • 太和县建设局网站网站首页模板下载
  • 斗鱼网站开发是用什么语言石家庄网站建设服务
  • 如何用七牛云做视频网站批量上传 wordpress
  • 中国免费网站申请许昌网站开发
  • 我怎么打不开建设银行的网站手工制作国庆节作品
  • co域名网站江苏常州武进区建设局网站
  • 长春网站建设长春网络推广培训班价格
  • 简单网站建设软件有哪些方面重庆品牌网站建设怎么样
  • 医院网站建设预算表在线制作文字
  • 电商网站制作教程wordpress 空间不足
  • 大厂县建设局网站太原网站开发培训
  • 什么是移动网站开发wordpress 招聘模板
  • 企业网站建设开始起步文章企业网查询是什么
  • 网站主机一般选哪种的大前端最新网站
  • 安徽建筑人才网淄博做网站跟优化
  • 建设安全员协会网站网站建设 长沙开福区
  • 模板网站建站步骤wordpress网站打开速度
  • 如何做单页网站impreza 4 wordpress
  • 网站建设跟推广评价指标有什么关系上海包装设计公司排名
  • 安徽省建设工程信息网站6门户网站建设信息化项目背景
  • 西安做网站公司哪家好wordpress文章页503
  • 网站建设 qq业务网制作网页紧急升级维护中升级
  • 网站建设起到计划和指导作用东莞市微信网站建设品牌
  • 网站首页布局设计教程企业网页设计论文
  • 青海建设云网站专业网站建设搭建
  • 云南省建设工程质量协会网站吉林长春seo网站建设网站优化
  • 电商网站制作流程图外链吧
  • 郑州网站建设服务wordpress如何开启小绿锁
  • 设计网站 常用图书馆网站制作
  • 某班级网站建设方案论文智能小程序入口