零基础学习java日记第十九天 反射 注解 JUnit单元测试 网络爬虫
今天主要学习了反射,注解,JUnit单元测试,网络爬虫。
反射是指通过使用某个包反向创建对象,它实现了动态编程。它一般使用类对象来实现反射操作。
获得类对象的三种方式:A.class;Class.ForName("包名类名");a1.getClass()。
获得包名类名的方法有:c.getPackage().getName()获得包名类名;c.getName()获得类名;c.getSimpleName()获得简单名字。
获得成员变量的定义信息:getFields()得到可见的成员变量,包括继承的。 getDeclaredFields()得到本类所有的变量,包括私有的,但是不包括继承的。 getField(变量名)得到特定的可见变量。getDeclaredField(变量名)得到特定的变量包括私有但不包括继承的。
获得构造方法的定义信息:getConstructors()获得可见的构造方法;getDeclaredConstructors()获得所有构造方法,包括私有的。getConstructor(参数类型列表)获得特定的构造方法;getDeclaredConstructor(int.class,String.class)获得所有包括私有的构造方法但不包括继承的。
4000通过"类对象"的反射操作可以新建对象:
[code]当执行无参构造时 Object obj = c.newInstance(); 当执行有参构造时 //获得构造方法 Constructor t = c.getConstructor(int.class,String.class); //通过构造方法反射操作,来新建对象 Object obj = t.newInstranc(6,"abc");
反射调用成员变量:
[code]//获得成员变量 Field f = c.getDeclaredField("age"); //使私有变量,也可以被访问 f.setAccssible(true); //赋值 f.set(对象, 21); //通知指定对象,访问变量 //静态变量,第一个参数给 null //取值 int i = (int) f.get(对象); //静态变量,第一个参数给 null
反射调用成员方法:
[code]//获得方法 Method t = c.getMethod(方法名,参数列表); //使私有成员允许被调用 t.setAccessible(true); //调用方法 Object obj = t.invoke(对象,参数数据); //让指定对象调用该方法 //静态方法,第一个参数给null //没有返回值得到null
注解是为其他开发工具或其他Java程序提供代码的额外信息。@Override注解由编译器来处理,编译器识别该注解,来对方法进行重新检查。自定义注解则是要自己编写处理代码的注解。
JUnit单元测试框架是第三方开源工具,eclipse集成了JUnit,可以直接在项目中导入JUnit.jar包,它可以直接对某段代码测试。
网络爬虫可以抓取网页页面内容,常用的有Jsoup。Jsoup是第三方开源的上层API,可以直接导入到项目使用。
自此,Java基础就讲完了,明天就要将其他东西了,加油。
- 零基础学习java日记第三阶段第四天 基础加强 枚举 注解
- JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)
- Java基础 :反射、注解、代理、线程池、依赖的学习和理解
- 黑马程序员—JAVA基础学习日记十——反射学习总结
- Java中与Junit,反射,注解的初次学习
- Java基础学习总结(24)——Java单元测试之JUnit4详解
- day01【基础加强】_Junit单元测试、反射、注解
- 黑马程序员--网络编程--java学习日记10(基础知识)
- 黑马程序员--Java基础学习笔记【单例设计模式、网络编程、反射】
- java基础第九讲——反射、工厂设计模式、注解、线程、网络与线程的结合
- Java基础第十九天学习日记_IO流
- Java基础笔记9——反射、Junit、注解、单例模式
- 学习Spring必学的Java基础知识(1)----反射
- java软件工程师培训学习日记------java语言核心基础之数组
- JAVA基础第二天学习日记_标识符、常量与变量、运算符、条件控制语句
- Java学习日记----基础2
- 黑马程序员学习日记——java语言基础,dos命令,环境变量搭建
- Java学习笔记之网络编程基础-通过URL获取网络图片
- java学习日记(9)———socket,网络编程的学习
- JAVA基础第六天学习日记_static关键字、文档、静态代码块、单例开发模式