java反射

1 反射
正在运行程序 动态获取这个类的所有信息。
2 反射创建对象的方式

Class userClass = Class.forName("com.yibaomd.reflect.TUser");
TUser user = (TUser) userClass.newInstance();
Constructor constructor = userClass.getConstructor(String.class,String.class);
TUser user = (TUser) constructor.newInstance("1","2");
System.out.println(user.getUserName());
System.out.println(user.getAge());

3 反射获取字段

    //获取当前类的所有属性不包括父类属性
	Field[]fields = userClass.getDeclaredFields();
	for(int i = 0; i < fields.length; i++){
		Field field = fields[i];
		System.out.println(field.getName());
	}
	//获取指定字段
	Field field = userClass.getDeclaredField("id");
	field.set(user, 1);
	System.out.println(user.getId());
	field = userClass.getDeclaredField("age");
	//如果字段是私有的不管是读值还是写值,都必须先调用setAccessible=true方法
	field.setAccessible(true);
	field.set(user, "age");
	System.out.println(user.getAge());

4获取注解

//获取类上的注解
SetTable setTableAno = (SetTable) anoClass.getAnnotation(SetTable.class);
Field[] fields = anoClass.getDeclaredFields();
for(Field field: fields){
	//判断是否包含这个注解
	if(field.isAnnotationPresent(SetField.class)){
		//获取属性注解
		SetField setField = field.getAnnotation(SetField.class);
		buf.append(" " + setField.name());
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值