studyNote_java基础_Day21
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了studyNote_java基础_Day21,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2089字,纯文字阅读大概需要3分钟。
内容图文
![studyNote_java基础_Day21](/upload/InfoBanner/zyjiaocheng/745/731af4d15ee74be1907248e55e2f9bba.jpg)
反射方式创建对象
-
用无参构造创建对象
Class.newInstance();//常用
-
有参构造创建对象
Class对象.getConstructor(newClass[]{若干参数的类类型});
比如:
User user=new User(“张三”,”zs”);
User.getClass().getConstructor(new Class[]{String.class,String.class}).newInstance(“张三”,”zs”);
-反射方式获取Field中的信息
-
获取当前类及长辈类的public Field
Field[] field=Class对象.getField();
-
获取当前类中所有的属性(公有和私有)
Field[] fields=Class对象.getDeclaredFields();
-
获取当前类及长辈类中的指定的公有属性
Filed field=Class.getField(String filedName);
-
获取当前类中指定的属性
Field field=Class对象.getDeclaredField(String fieldName);
-
通过反射设定Field属性的值
Field对象.setObject(Object obj,Object value);
如果Field是私有的,必须先执行:Field对象.setAccessable(true);
-
通过反射动态获取Field的值
Object value=Field对象.get(Object obj);
如果Field是私有的,必须先执行: Field对象.setAccessable(true);
-反射方式获取Method方法的信息
1.获取当前类及长辈类中的公有方法
Method[] methods=Class对象.getMethods();
2.获取当前类中的所有方法
Method[] methods=Class对象.getDeclaredMethods();
-
获取当前类及长辈类中指定的公有方法
Method method=Class对象.getMethod(String methodName,new Class[]{methodName的参数的类类型})
-
获取当前类中指定的方法
Method method=Class对象.getDecalaredMethod(String methodName,new Class[]{methodName的参数的类类型})
5通过反射动态调用指定的Method
Object returnvalue=Method对象.invoke(Object obj,Object…args);
解析:
通过obj这个对象调用Method对象确定的方法,并把参数args传入方法
Method对象对应的方法返回值是returnValue
-反射获取Construetor构造函数
查api文档
-反射获取Annotation注解
查api文档
在哪些地方使用反射,反射的应用场景
-反射实现jdbc的通用查询和通用更新
-反射解析注解
-单元测试,用反射实现
-常见的框架,spring springmvc等其他框架,用反射实现
-EL表达式
-等等
反射的优点:
大幅度的提高开发效率,框架就是用反射实现的,框架提高了开发效率
反射的缺点:
反射的效率比非反射的方式的执行效率低
反射可以暴露类中的所有的细节,突破了封装
内容总结
以上是互联网集市为您收集整理的studyNote_java基础_Day21全部内容,希望文章能够帮你解决studyNote_java基础_Day21所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。