java反射---实例

//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 = "";
				}

猜你喜欢

转载自jameskaron.iteye.com/blog/2264761
今日推荐