Discuss / Java / 交作业

交作业

Topic source


	static void check(Person person) throws IllegalArgumentException, ReflectiveOperationException {

		for (Field field : person.getClass().getFields()) {

			Range range = field.getAnnotation(Range.class);

			if (range != null) {

				Object value = field.get(person);

			    logger.info("name:{},value:{},type:{}",field.getName(),value,field.getType().getSimpleName());;

				// TODO:

			    switch(field.getType().getSimpleName()) {

			    case "String": String tmp1 = (String)value;

			    logger.info("tmp1 min={},length={},max={}",range.min(),tmp1.length(),range.max());

			                   if(range.min()>tmp1.length()){

			                	   throw new IllegalArgumentException("String is too short");

			                   }

			                   if(tmp1.length()>range.max()) {

			                	   throw new IllegalArgumentException("String is too long");

			                   }break;

			                   

			    case "int": int tmp2 = (int)value;

			    logger.info("tmp2 min={},value={},max={}",range.min(),tmp2,range.max());

			                if(range.min()>tmp2) {

			                	throw new IllegalArgumentException("Int is too small");

			                }

			                if(tmp2>range.max()) {

			                	throw new IllegalArgumentException("Int is too big");

			                }

			                	break;

			    }

			}

		}

	}




  • 1

Reply