版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、昨日总结作业评讲上课啦第27天反射和新特性菜单北京传智播客教育 Java反射机制JDK新特性Java基础大总结其他扩充内容问题1. 给你一个字符串式的类名(在配置文件中),你能创建出对象吗?“cn.itcast.demo.Student”Student s=new Student();2. 现在有一个对象,你能输出这个对象的方法名、属性名这些信息吗? Student s=new Student(); name age eat() work()Java反射机制1JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这
2、种动态获取对象信息以及动态调用对象方法的功能称为java语言的反射机制。说白了,就是从内存中的字节码文件中获取相关信息。反射机制牵涉到的主要API有:Java.lang.Class类,表示某个类自身(内存中的字节码文件)Java.lang.reflect.Method类,获取运行时某个类的方法信息Java.lang.reflect.Field类,获取运行时某个类的属性信息Java反射机制2Java.lang.Class类的常用方法:public String getName(),获得该类的名字public Field getDeclaredField(String name),返回一个 Fie
3、ld 对象。public Field getField(String name),返回一个 Field 对象(public)public Field getDeclaredFields(),返回 Field类型的一个数组,存储某类的所有属性public Field getFields(),获得Field类型的数组,存储某类的所有公有属性public Method getDeclaredMethods()public Method getMethods(),获得Method类型的数组,存储某类的所有公有方法public Method getMethod(String name,Class . p
4、aramTypes ),获得某类中的某个方法public static Class forName(String className),加载类public Object newInstance(),创建某类的一个新实例编码演示Java反射机制3Java.lang.reflect.Field类的常用方法:public String getName(),获得属性名Java.lang.reflect.Method类的常用方法:public String getName(),获得方法名public Class getParameterTypes(),获得一个存储方法的参数类型的数组public Cla
5、ss getReturnType(),获得方法的返回值public Object invoke(Object obj, Object. args),调用方法,第一个参数表示某个对象,后面的参数表示方法的参数值编码演示北京传智播客教育 反射的实际应用给你一个ArrayList的对象,我想在这个集合中添加一个字符串数据,如何实现呢?(java的泛型只是编译时作为类型检查,一旦编译完成,泛型就会被擦除,在运行期间是没有泛型的信息的,包括它的类型参数)小结JDK新特性JDK5新特性总结:增强for静态导入拆箱装箱可变参数JDK7新特性总结:新式的switch语句泛型的简化异常的多catch合并资源自动
6、释放try_with_resourceJDK5增强for增强for可以让普通循环的代码更简洁,但由于计数器被隐藏,也有缺点:1.无法通过下标获得或控制单独某个数组或集合中的元素2.只能顺次全部遍历int array = 1,2,5,8,9;int total = 0;for (int n : array) total += n;System.out.println(total);int array = 1,2,5,8,9;int total = 0;for (int i = 0; i array.length; i+) total += arrayi;System.out.println(to
7、tal);JDK5静态导入import语句可以导入一个类或某个包中的所有类import static语句导入一个类中的某个静态方法或所有静态方法语法举例: import static java.lang.Math.*; . .System.out.println(min(3, 9); System.out.println(abs(3-9);JDK5拆箱装箱八种基本数据类型都有一个对应的引用数据类型,叫包装类。Integer i1 = new Integer(100); /装箱Integer i2 = 100; / JDK5之后才支持这种写法,自动装箱int i3 = Value()
8、 + 10; /拆箱int i4 = i2 + 10; / JDK5之后才支持这种写法,自动拆箱JDK5可变参数一个方法将来接收的参数的个数不确定可变参数的特点:只能出现在参数列表的最后;这个要记住.位于参数类型和参数名之间,前后有无空格都可以调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数public static void main(String args) System.out.println(add(1,2,3,5);System.out.println(add(2,3,5);/求N个数之和public static int add(int
9、x,int .args) int sum = x;for(int i=0;iargs.length;i+)sum += argsi;return sum;JDK7switchString day = 星期一;switch (day) case 星期一: System.out.println(星期一:青菜 ); break; case 星期二: System.out.println(星期二:鱼 ); break; default:JDK7泛型的简化以后你创建一个泛型实例,不需要再详细说明类型,只需用,编译器会自动帮你匹配Map myMap = new HashMap(); /可以简化为 Map
10、myMap = new HashMap(); JDK7多catch合并 很多时候,我们捕获了多个异常,却做了相同的事情,这时,代码就不那么优雅了try /. .catch (IOException ex) logger.log(ex); catch (SQLException ex) logger.log(ex); try /. .catch(NullPointerException | ArrayIndexOutOfBoundsException ex) ex.printStackTrace(); JDK7资源自动释放在JDK7中, try-with-resources语句确保在语句的最后每
11、个资源都被自动关闭 。任何实现了 java.lang.AutoCloseable的对象, 包括所有实现了 java.io.Closeable 的对象, 都可以使用try-with-resource来实现异常处理和资源自动关闭。public String readFirstLingFromFile(String path) throws IOException BufferedReader br=null; try br=new BufferedReader(new FileReader(path); return br.readLine(); catch(IOException e) e.printStackTrace(); finally if(br!=null) br.close(); return null;public String readFirstLingFromFile(String path) throws IOExceptionString val = null;try (BufferedReader
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版牛粪有机肥生产加工合同规范4篇
- 二零二五年度新型农村电商服务合同规范文本4篇
- 二零二五年度美容美发产品研发及成果转化合同3篇
- 二零二五年度城市更新改造项目投资合同6篇
- 二零二五年度出国劳务派遣与职业技能提升培训合同3篇
- 房贷合同范本(2篇)
- 承包牛羊合同(2篇)
- 2025年度幕墙工程材料供应与配送合同4篇
- 2025年度农机维修服务网点加盟管理合同4篇
- 2025年欧派橱柜出口贸易合同4篇
- (正式版)CB∕T 4552-2024 船舶行业企业安全生产文件编制和管理规定
- JBT 14588-2023 激光加工镜头 (正式版)
- 2024年四川省成都市树德实验中学物理八年级下册期末质量检测试题含解析
- 九型人格与领导力讲义
- 廉洁应征承诺书
- 2023年四川省成都市中考物理试卷真题(含答案)
- 泵车述职报告
- 2024年山西文旅集团招聘笔试参考题库含答案解析
- 恢复中华人民共和国国籍申请表
- 管理期货的趋势跟踪策略 寻找危机阿尔法
- 沥青化学分析试验作业指导书
评论
0/150
提交评论