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

建筑行业网站开发域名备案查询网

建筑行业网站开发,域名备案查询网,怎么将网站关键词排名首页,做二维码推送网站反射 什么是反射#xff1a; ​ 反射是Java语法的一种高级特性#xff0c;在“运行期间”对Java的类型信息进行检查#xff0c;操作处理。例如#xff1a;加载JDBC驱动类#xff0c;Mybatis动态处理resultType#xff0c;Spring根据配置创建Bean对象等使用场景都用反射…反射 什么是反射 ​ 反射是Java语法的一种高级特性在“运行期间”对Java的类型信息进行检查操作处理。例如加载JDBC驱动类Mybatis动态处理resultTypeSpring根据配置创建Bean对象等使用场景都用反射实现 常见的反射操作 获取Class类型信息执行构造方法创建对象调用实例方法通过成员变量保存值和获取值 Class类 Class对象用于保存一个类的类型信息它是反射的入口操作 获取Class对象的三种方式 通过类名 Class cls Book.class;通过forName()方法 Class cls Class.forName(com.dong.Book);通过对象 Class cls new Book().getClass();类只加载一次三个方法获取同一个类的Class对象输出相同 Constructor类 代表一个类中的构造方法构造器用于创建“目标对象” 获取Constructor构造方法的方式 Class对象.getConstructor() 获取无参构造方法 Class cls Book.class;Constructor constructor1 cls.getConstructor(); // 获取无参构造方法Class对象.getConstructor(Class…) 获取有参构造方法 Class cls Book.class;// 获取有参构造方法在Book类中存在有参构造方法 // 参数列表为String,String,double,int Constructor constructor2 cls.getConstructor(String.class,String.class,double.class,int.class);执行Constructor构造方法的方式 Constructor对象.newInstance() 执行无参构造方法 // 执行无参构造方法,创建目标对象 Object obj constructor1.newInstance();Constructor对象.newInstance(值…) 执行有参构造方法 // 执行有参构造方法创建目标对象 Object obj constructor2.newInstance(额尔古纳河右岸,迟子建,12.5,100);获取所有的构造方法 ClassBook cls Book.class; Constructor[] constructors cls.getConstructors();总结创建目标对象的方法3种 通过Class对象 ClassBook cls Book.class; Object obj cls.newInstance();通过无参构造方法 通过有参构造方法 Field类 代表一个类中的成员变量(字段)用于为“目标对象”保存值和获取值 获取Field成员变量的方式 获取public修饰的成员变量Class对象.getFields() Class cl Book.getClass(); Field[] fields cl.getFields();获取public/private修饰的成员变量Class对象.getDeclaredFields() Class cl Book.getClass(); Field[] fields cl.getDeclaredFields();使用Field成员变量的方式 Class对象.getField(成员变量名称)public修饰的成员变量 Class cl Book.getClass(); Field[] fields cl.getFields(bookName);Class对象.getDeclaredField(成员变量名称)public\private修饰的成员变量 Class cl Book.getClass(); Field[] fields cl.getDeclaredFields(bookName);给Filed成员变量赋值 Field对象.set(目标对象Value); // 获取需要创建的对象类型信息 Class bookClass Book.class; // 创建对象 Object bookObj bookClass.newInstance(); // 获取该类型中bookName成员变量 Field bookNameField bookClass.getDeclaredField(bookName);// book对象.bookName 舒克和贝塔 bookNameField.setAccessible(true); // 由于Book类中bookName是私有的所以需要设置 bookNameField.set(bookObj, 舒克和贝塔);setAccessible 封装时类的成员变量私有将Field对象的accessible标志设置为ture表示反射的对象在使用时应该取消 Java 语言访问检查设置为false表示反射的对象应该实施 Java 语言访问检查 获取成员变量名称并获取变量值 获取成员变量名称Field对象.getName(); 获取变量值Field对象.get(目标对象名); 例 public static void main(String[] args) throws NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {// 获取类型的信息对象ClassBook cls Book.class;// 创建目标对象Constructor constructor cls.getConstructor(String.class,String.class,double.class,int.class);Object obj constructor.newInstance(额尔古纳河右岸,迟子建,12.6,100);show(obj); }public static void show(Object obj) {try {Class cl obj.getClass(); Field[] fields cl.getDeclaredFields();for(Field f : fields) {f.setAccessible(true);System.out.println(属性f.getName()); // 获取成员变量属性System.out.println(属性值:f.get(obj)); // 获取变量属性值}} catch (SecurityException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} }Method类 代表一个类中的方法用于调用执行该方法 获取Method方法的方式 获取指定名称和参数列表的MethodClass对象.getMethod(String name,Class…parameterTypes) 在调用时需要传入方法名以及参数列表类型eg Class cls Book.class; Method method cls.getMethod(read,String.class,String.class);获取所有的Method方法Class对象.getMethods(); Class cls Book.class; Method[] methods cls.getMethods();for(Method m : methods) {System.out.println(m);System.out.println(访问修饰符:m.getModifiers()); System.out.println(返回值类型m.getReturnType());// 参数列表为一个Parameter类型的数组System.out.println(参数列表);for(Parameter p : m.getParameters()) {System.out.println(p);}System.out.println(方法名称m.getName());System.out.println(); }getModifiers()获取访问修饰符getReturnType()获取返回值类型getParameters()获取参数列表getName()获取方法名称 执行Method方法的方式 Method对象.invoke(目标对象方法参数) eg读取配置文件调用方法 config.txt com.dong.Task executeTask类 public class Task {public String execute(String id) {System.out.println(ִ执行流水号 id);System.out.println(ִ执行了Task任务类的excute方法!);return ok;} }Job类 public class Job {public String run(String id) {System.out.println(执行流水号: id);System.out.println(ִ执行了Job任务类的run方法);return success;} }Main方法 import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; import java.util.UUID;public class reflex07 {public static void main(String[] args) throws IOException, ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {// 读取配置文件调用方法修改配置文件中内容执行不同的方法ListString configList Files.readAllLines(Paths.get(f:\\config.txt));String classNameconfigList.get(0);String methodNameconfigList.get(1);// 获取类信息Class? cl Class.forName(className);// 获取方法Method method cl.getMethod(methodName, String.class);// 执行方法Object obj cl.newInstance(); // 创建目标对象Object returnVal method.invoke(obj, UUID.randomUUID().toString()); // 调用方法System.out.println(返回值returnVal);} }通过Method对象.invoke(目标对象参数列表)调用方法
http://www.zqtcl.cn/news/97885/

相关文章:

  • 河南省级建设主管部门网站免费推广平台哪个好
  • wordpress禁止自动升级seo实战密码怎么样
  • 福永网站建设公司如何利用个人nas做网站
  • 北京网站seo外包wordpress心情
  • 租用服务器一般是谁帮助维护网站安全网站如何看是哪家公司做的
  • 戴尔网站建设的特点开创者wordpress素材
  • 网站假设公司排名不用囤货
  • 有关网站建设合同织梦珠宝网站模板
  • 月牙河做网站公司电商网站开发成本
  • iis7建立网站注册公司地址虚拟地址怎么申请
  • 响应式网站开发的想要去国外网站买东西怎么做
  • 网站建设开发有什么好处百度网盘0基础网站开发教程
  • 桂林整站优化青岛网站制作哪里有
  • 织梦cms手机网站源码天天想你视频免费观看西瓜
  • 怎么做网站弄网盟邯郸超速云_网站建设
  • 桂阳做网站的软件定制开发外包wordpress电子商务插件
  • 10有免费建网站那些公司做网站比较厉害
  • 网站关键词优化推广旅游类网站开发开题报告范文
  • 官方网站营销拟在建项目信息网官网
  • 沈阳做微信和网站的公司湛江网站建设公司哪家好
  • 网站 开发逻辑电话销售电销系统
  • 有哪些做兼职的设计网站有哪些工作可以用asp做哪些网站
  • 装修网站推广方案东莞网站建设0086
  • 知名营销网站开发高端网站建设如何收费
  • 佛山网站建设邓先生沈阳做网站找黑酷科技
  • 网站建设 排名下拉请教个人主页网站怎么做啊
  • 揭阳网站制作教程安阳seo公司
  • 网站运营管理教材wordpress 评论框插件
  • 免费做手机网站有哪些网页怎么制作链接
  • 浙江省建设工程质量协会网站wordpress只在首页设置关键词