//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 = ""; }
java反射---实例
猜你喜欢
转载自jameskaron.iteye.com/blog/2264761
今日推荐
周排行