propertydescriptor
用到的场景:在写推送MQ消息的时候,想一个sendmessage 类去 推送不同的 队列名。
首先用一个constant类存放了不同的MQ的推送的队列名字 是用@value注入的,里面有多个队列名字,其实对应着这个Constant不同的属性。现在就是将这些队列名字对应的属性通过一个键值(可以在数据库中加个字段,也可以前端交互)存放到一个Map中去,在调用这个类的时候,循环map取出队列名对应的 属性名字的字符串(注意,这里是属性名字的字符串,并不是这个属性的值)。所以就要用到反射机制的PropertyDescriptor去根据这个属性名字的字符串去得到属性的值(这里就是要推送的队列名)
一、一个简单的PropertyDescriptor类的例子
package testPoi;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
public class TestPropertyDescriptor {
public static void main(String[] args) {
Person person = new Person();
person.setName("zhangsan");
person.setAge(18);
getFiled(person, "name");//结果输出 zhangsan
}
// 通过反射得到name
// 可以看到这是通过 得到 属性的get方法(pd.getReadMethod()) 再调用invole方法取出对应的属性值
//同样得到set方法(pd.getWriteMethod())
private static void getFiled(Object object, String field) {
Class<? extends Object> clazz = object.getClass();
PropertyDescriptor pd = null;
Method getMethod = null;
try {
pd = new PropertyDescriptor(field, clazz);
if (null != pd) {
// 获取 这个 field 属性 的get方法
getMethod = pd.getReadMethod();
Object invoke = getmethod.invoke(object);
System.out.println(invoke);
}
} catch (Exception e) {
e.printstacktrace();
}
}
}
文章最后发布于: 2017-07-27 10:34:44
相关阅读
(未完待续) 访问系统和硬件信息。使用这个类可以了解底层平台和硬件的功能。例如,您可以检查支持哪种RenderTexture格式(SupportsRen
最近日本台风,受了灾。在知乎上刷到了个问题: 如何评价关西机场成孤岛,中国游客称「别人还在排队,领馆已把我们接走」? 从利比亚内
儿童陪伴内容是在线音频内容平台发展的必然,并在品类之争中扮演至关重要角色,儿童内容线上运营及生态培育依然是需要源头活水,尤其是
Oraclet 没有像sql server所支持的top语法,不过可通过rownum控制。rownum没有所谓的小于,只有大于。 –查询前10条数据 select * fr
变量的类型 对于之前所学习的知识进行相关的整理,进行梳理,以求在以后的日子得以复习和总结。今天进行C/C++的变量类型梳理,如下:1