浅谈Java的反射机制
程序员文章站
2024-02-09 18:06:06
...
浅谈Java的反射机制
通过类的.class文件生成该类对象
如下:
UserManager u = (UserManager)ClassUtil.initClass(UserManager.class);
实现:
public class ClassUtil {
public static Object initClass(Class<? extends Object> c) throwsInstantiationException, IllegalAccessException
{
returnc.newInstance();
}
}
自定义注解利用反射找到被注解标记的属性
1定义一个UserId的注解:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UserId {
}
2在我们的类中标识要找的属性:
public class Info {
@UserId
publicint id;
}
3利用反射找到该类被自定义注解标识的属性
public static int getUseId(Object obj){
Field[]fields=obj.getClass().getFields();
for(Fieldf:fields)
{
if(f.getAnnotation(UserId.class)!=null){
f.setAccessible(true);
try{
id=f.getInt(obj);
}catch (IllegalAccessException e) {
e.printStackTrace();
}catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
}
returnid;
}
4使用方式
Info info=new Info();
info.id=10010;
int id=ClassUtil.getUseId(info);
返回的id就是info中被我们注解的属性值。
转载于:https://my.oschina.net/sunqiyao/blog/664409
上一篇: Java多态机制中的绑定规则
下一篇: 浅谈-Java的反射机制