Discuss / Java / 交作业

交作业

Topic source

package com.itranswarp.learnjava;

import java.lang.reflect.Field;

public class Main {

public static void main(String[] args) throws Exception{

Person p1 = new Person("Bob","Beijing", 20);

Person p2 = new Person("","Shanghai", 20);

Person p3 = new Person("Alice","Shanghai", 199);

for(Person p: new Person[] {p1, p2, p3}) {

try {

check(p);

System.out.println("Person "+ p +" checked ok.");

}catch(IllegalArgumentException e) {

System.out.println("Person "+ p + " checked failed: " + e);

          }

       }

}

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);

if(value instanceof String) {

String s = (String) value;

if(s.length()< range.min()||s.length() > range.max()) {

throw new IllegalArgumentException("Invalid field:" + field.getName());

                  }

           }

if(value instanceof Integer) {

int i =(int) value;

if(i < range.min()||i>range.max()) {

throw new IllegalArgumentException("Invalid field:"+field.getName());

                       }

                  }

              }

        }

     }

}

这不这里是int吗。(int)value。


  • 1

Reply