Java教程

java反射以及乱七八糟

本文主要是介绍java反射以及乱七八糟,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

java反射以及乱七八糟

Junit单元测试:
黑盒子和白盒子://晓不晓得流程
Junit;
1.定义一个测试类
建议类名加Test
2.定义测试方法:独立运行 test类名()
3.给方法加一个@test;
4.导入依赖:
断言://预测
Assert.asserEquals(期望,实际)
@Befor//所有的测试方法执行之前都会先执行这个方法**资源的申请
@After//所有的测试方法执行以后都会执行这个方法
资源释放
反射:reflect//框架灵魂
框架:半成品:简化编码
将类的各个组成部分封装成对象
好处:
1.可以在程序运行过程中,操作这些对像
2.可以解耦,提高程序的可扩张性
获取class对象的方式:
1.class.forName(“全类名”);将字节码文件加载进内存,返回class对象
2.类名.class:通过类名的属性class获取
3.对象.getclass():再object类中定义
结论:同一个*。class对象都是一个
1:多数用于配置文件,读取文件加载类
2.多用于参数的传递
3.多用于对象的字节码的方式
使用class对象:
获取:
1.获取成员变量:
Field[] getFields();//获取所有的成员变量
get(obj);set(obj);
Field getField(String name)//获取一个变量

	忽略修饰符:d.setAccessible(true);//暴力反射 
			Field[] getDeclaredFields();//获取所有的成员变量*不管修饰符
			Field getDeclaredField(String name);//获取一个成员变量*不管修饰符
		2.获取构造方法;
			Constructor<?>[] getConstructors();//
			Constructor<T> getConstructors(类<?>...parameterTypes);//class.getConstructors(String.class,int.class );
			 创建对象:newInstance(string name,int age)
		
			Constructor<?>[] getDeclaredConstructors();
			Constructor<T> getDeclaredConstructors(类<?>...parameterTypes)
		3.获取成员方法;
			Method[] getMethods();
			Method getMethod(String name,类<?>...parameterTypes)
			objec invoke();
		
			Method[] getDeclaredMethods();
			Method getDeclaredMethod(String name,类<?>...parameterTypes)
		4.获取类名;
			String getName();

注解:说明程序 @注解名称
1.代码文档 javadoc
2.代码分析
3.编译检查
jdk预定义:
@override:用来检测该方法是不是继承父类/父接口
@Deprecated:表示内容已过时
@SuppressWarnings(“all”):压制警告//=all
自定义注解:
元注解
public @interface 注解名称{};
本质就是一个接口:默认继承annotation;
属性;接口中的抽象方法
要求;
1.返回值类型:基本数据类型,字符串,枚举,注解
2.使用赋值,也可以默认赋值default;value可以直接写值—数组需要{}
元注解:
@Target():描述能够作用的位置
type:类上
METHOD:方法
FIELD:成员
@Retention():描述注解保留阶段
会保留class字节码文件中,并被jvm读取到
@Documented():描述是否被抽取到api文档
@Inherited():描述注解是否被子类继承
在程序中使用注解:获取注解的属性值
解析注解:
1.获取该类的字节码文件对象
2.获取注解的对象obj.geAnnotation(
.class)//在内存中生成了该注解接口的子类对象
3.调用注解中抽象方法,获取返回值

		1.获取注解定义位置
		2.获取指定注解
		3.调用注解的抽象方法获取配置属性
这篇关于java反射以及乱七八糟的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!