//reflect
//获取类对象
Class<AlertMessage> alertMessageClass = (Class<AlertMessage>) alertMessage.getClass();
//获取字段的所有属性
Field[] fsArray = alertMessageClass.getDeclaredFields();
//获取类内的所有方法
Method[] methods = alertMessageClass.getMethods();
for (Field f : fsArray) {
//获取访问权限
f.setAccessible(true);
Object val = f.get(alertMessage);
//output:属性的名字和属性的值 如:msisdn 123
// System. out .println( "1st : name:" + f.getName()+ "\t value = " +val);
//get the type of this property
String type = f.getType().toString();
//output:输出属性类型 如:class java.lang.String
// System.out.println("type : " + type);
String typeName = f.getName().substring(0, 1).toUpperCase() + f.getName().substring(1);
// System.out.println(typeName);
if(f.getType() == java.sql.Timestamp.class ){
//if val is null,not to format it
for (Method method : methods) {
if (method.getName().startsWith( "get" + typeName)){
//获取所有get的方法
// System. out .print( "methodName:" +method.getName()+ "/t" );
//通过get方法获取的值
// System. out .println( "value:" +method.invoke(alertMessage));
if(val != null){
val = sdf.format(method.invoke(alertMessage));
}
}
}
}
//if val is null, change to ""
if(val == null){
val = "";
}