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

盐城网站优化工作室网页设计网站模板网站建设网页模板下载

盐城网站优化工作室,网页设计网站模板网站建设网页模板下载,安徽外经建设集团网站,官方小程序开发单元测试 就是针对最小的功能单元(方法)#xff0c;编写测试代码对其进行正确性测试。 咱们之前是如何进行单元测试的#xff1f;有啥问题 #xff1f; Junit单元测试框架 可以用来对方法进行测试#xff0c;它是由Junit公司开源出来的 具体步骤 Junit框架的常见注解…单元测试 就是针对最小的功能单元(方法)编写测试代码对其进行正确性测试。 咱们之前是如何进行单元测试的有啥问题   Junit单元测试框架  可以用来对方法进行测试它是由Junit公司开源出来的  具体步骤  Junit框架的常见注解 public class StringUtilTest {TestBeforepublic void testPrintNumber(){StringUtil.printNumber(哈哈);StringUtil.printNumber(null);}Testpublic void testGetMaxIndex(){int sum new StringUtil().getMaxIndex(蝙蝠侠不打你了);System.out.println(sum);Assert.assertEquals(警告,警告,6,sum);}TestAfterpublic void testPrint(){System.err.println(结束);} } 反射Reflection 反射就是加载类并允许以编程的方式解剖类中的各种成分成员变量、方法、构造器等。  反射学什么?  获取Class对象的三种方式  1.直接使用类名.class获取Class c1 类名.class 2.调用Class提供的方法Class c2 Class.forName(全类名) 3.调用Object提供的方法Class c3 对象.getClass()  public class Demo1 {Testpublic void testDemo01() throws ClassNotFoundException {Class catClass Cat.class;System.out.println(catClass.getName());Class aClass Class.forName(com.itheima.b_反射.Cat);System.out.println(aClass);Class aClass1 new Cat().getClass();System.out.println(aClass1);} } 获取类的构造器 /* 获取构造器[下面是Class的方法]Constructor?[] getConstructors() 获取所有的公共构造器只能获取public修饰的Constructor?[] getDeclaredConstructors() 获取全部构造器只要存在就能拿到ConstructorT getConstructor(Class?... parameterTypes) 获取某个公共构造器只能获取public修饰的ConstructorT getDeclaredConstructor(Class?... parameterTypes) 获取某个构造器只要存在就能拿到使用构造器(创建对象)[下面是Constructor的方法]T newInstance(Object... initArgs) 调用此构造器对象表示的构造器并传入参数完成对象的初始化并返回public void setAccessible(boolean flag) 设置为true表示禁止检查访问控制暴力反射注意使如果想使用private修饰构造器反射创建对象,需要暴力反射(禁止JVM检查构造方法的访问权限) */ public class Demo2 {Testpublic void testConstructor() throws NoSuchMethodException {ClassCat clazz Cat.class;//获取全部构造器(public)Constructor[] constructors clazz.getConstructors();for (Constructor constructor : constructors) {System.out.println(constructor);}Constructor?[] declaredConstructors clazz.getDeclaredConstructors();for (Constructor? declaredConstructor : declaredConstructors) {System.out.println(declaredConstructor);}System.out.println();ConstructorCat constructor clazz.getConstructor();System.out.println(constructor);System.out.println();ConstructorCat declaredConstructor clazz.getDeclaredConstructor(String.class, int.class);System.out.println(方法名: declaredConstructor.getName() 参数个数: declaredConstructor.getParameterCount());}Testpublic void testNew() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {Class calazz Cat.class;Constructor declaredConstructor calazz.getDeclaredConstructor(String.class, int.class);declaredConstructor.setAccessible(true);Cat 加菲猫 (Cat)declaredConstructor.newInstance(加菲猫, 3);System.out.println(加菲猫);} } 获取类的成员变量 public class Demo3 {Testpublic void testField() throws NoSuchFieldException {ClassCat catClass Cat.class;//获取类的所有公共成员变量只能获取public修饰的Field[] fields catClass.getFields();for (Field field : fields) {System.out.println(field);}System.out.println();//获取类的全部成员变量Field[] declaredFields catClass.getDeclaredFields();for (Field declaredField : declaredFields) {System.out.println(declaredField.getName() declaredField.getType());}System.out.println();Field a catClass.getField(a);//获取某个类的成员变量,只要存在就能拿到System.out.println(a);Field age catClass.getDeclaredField(age);System.out.println(age);}Testpublic void test2() throws NoSuchFieldException, IllegalAccessException {Class clazz Cat.class;Cat cat new Cat();// System.out.println(cat);Field age clazz.getDeclaredField(age);Field name clazz.getDeclaredField(name);//暴力反射age.setAccessible(true);name.setAccessible(true);age.set(cat,5);name.set(cat,哈哈);System.out.println(cat);//取值Object o age.get(cat);System.out.println(o);} } 获取类的成员方法 /* 获取成员方法[Class提供]Method[] getMethods() 获取类的全部公共成员方法只能获取public修饰的Method[] getDeclaredMethods() 获取类的全部成员方法只要存在就能拿到Method getMethod(String name, Class?... parameterTypes) 获取类的某个公共成员方法只能获取public修饰的Method getDeclaredMethod(String name, Class?... parameterTypes) 获取类的某个成员方法只要存在就能拿到使用成员方法(执行方法)[Method提供]public Object invoke(Object obj, Object... args) 触发某个对象的该方法执行。public void setAccessible(boolean flag) 设置为true表示禁止检查访问控制暴力反射注意使如果想使用private修饰的成员方法,需要暴力反射 */ public class Demo4 {Testpublic void testMethods() throws NoSuchMethodException {ClassCat catClass Cat.class;Method[] methods catClass.getMethods();for (Method method : methods) {System.out.println(方法名: method.getName() 返回值类型: method.getReturnType());}System.out.println();Method[] declaredMethods catClass.getDeclaredMethods();for (Method declaredMethod : declaredMethods) {System.out.println(方法名: declaredMethod.getName() 返回值类型 declaredMethod.getReturnType());}System.out.println();Method eat catClass.getDeclaredMethod(eat);System.out.println(方法名: eat.getName() 返回值类型 eat.getReturnType());System.out.println();Method eat1 catClass.getDeclaredMethod(eat, String.class);System.out.println(方法名: eat1.getName() 返回值类型 eat1.getReturnType());}Testpublic void tese2() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {ClassCat clazz Cat.class;Method eat clazz.getDeclaredMethod(eat, String.class);eat.setAccessible(true);Cat cat new Cat();Object invoke eat.invoke(cat, );System.out.println(invoke);} } 案例:  /* 反射案例对于任意一个对象该框架都可以把对象的字段名和对应的值然后打印在控制台*/ public class Demo5 {public static void main(String[] args) {//1. 准备两个对象Student student new Student(柳岩, 40, 女, 167.5, 女星);Teacher teacher new Teacher(播妞, 6000);//2.调用方法print(student);}public static void print(Object o) {try {Class clazz o.getClass();Field[] declaredFields clazz.getDeclaredFields();for (Field declaredField : declaredFields) {declaredField.setAccessible(true);String name declaredField.getName();Object o1 declaredField.get(o);System.out.println(nameo1);}}catch (Exception e){}} }class Student{public Student(String name, int age, char sex, double height, String hobby) {this.name name;this.age age;this.sex sex;this.height height;this.hobby hobby;}private String name;private int age;private char sex;private double height;private String hobby; }class Teacher {public Teacher(String name, double salary) {this.name name;this.salary salary;}private String name;private double salary; } 反射的作用  注解 元注解 指的是修饰注解的注解。  注解解析器 就是判断类上、方法上、成员变量上是否存在注解并把注解里的内容给解析出来。  如何解析注解  public class ClassNameCheckParser {public static void checkClassName(){//1.存放不符合规范的类ArrayListString list new ArrayList();//2.获取指定包下的所有类SetClass clazzSet ClassUtil.getClasses(com.itheima.c_annotation.example);//3.遍历set集合找到标注ClassNameCheck注解的类for (Class clazz : clazzSet) {//判断某个类上是否有某个注解if(clazz.isAnnotationPresent(ClassNameCheck.class)){//获得类名String simpleName clazz.getSimpleName();//检查类名是否以Heima开头if(!simpleName.startsWith(Hei)){list.add(simpleName);}}}//判断集合中是否有不符合规范的,如果有直接保存if(list.size() 0) {System.out.println(下面类名不符合规范);for (String name : list) {System.out.println(name);}throw new RuntimeException(程序终止);}}}
http://www.hkea.cn/news/14335708/

相关文章:

  • 张家界市网站建设设计合肥发布网
  • 做网站的需要哪些职位博客园wordpress主题
  • 制作logo设计html网站如何做seo
  • 南昌有什么网站结构设计网站推荐
  • 新网站seo优化电子商务网站设计原理名词解释
  • 公司网站如何上传视频临沂市建设局兰山区网站
  • 阿里云备案网站负责人义乌网站建设与维护
  • 网站建设技术论坛.net做网站实例 贴吧
  • 设计网站哪个好用招标网站排行榜
  • 十个程序员必备的网站业务外包的优势和劣势
  • 一个网站两个域名吗电子商务网站建设的主页
  • 时尚类网站建设北京网站制作公司电话
  • 服务类网站怎么做做二手房产网站多少钱
  • 有没有专门做牛仔的网站加强网站建设会
  • 帮人做钓鱼网站的人随州程力网站建设
  • 建设部证书查询网站西安网站建设盈科
  • 南昌网站建设联系方式国家网站建设的相关规定
  • 加强门户网站建设 信息公开群辉 wordpress 端口号
  • 购买已备案网站做非法新开的网页游戏大全
  • 甘肃住房和城乡建设厅网站首页莱州网站建设青岛华夏商务网
  • 南通高端网站设计wordpress 插件制作
  • 制作一个网站都需要学什么网站建设电话邀约话术
  • 深圳网站建设 沙漠风大连手机网站建设
  • 唐山教育平台网站建设wordpress 访问页面
  • iis7如何部署网站打开一个网站搜索页面跳转js
  • 荆州做网站哪家好国内最好的效果图公司
  • 网站建设与维护实验报告婚庆公司简介
  • 接网站建设外包的工作总结铭品装饰公司
  • 石家庄外贸网站建设公司排名万网域名续费查询
  • 旅游网站建设目标重庆在建工程信息查询