public ReflectiveAttribute(Class<O> objectType,Class<A> fieldType,String fieldName){
  super(objectType,fieldType,fieldName);
  Field field;
  try {
    field=getField(objectType,fieldName);
    if (!field.isAccessible()) {
      field.setAccessible(true);
    }
  }
 catch (  Exception e) {
    throw new IllegalStateException("Invalid attribute definition: No such field '" + fieldName + "' in object '"+ objectType.getName()+ "'");
  }
  if (!fieldType.isAssignableFrom(field.getType())) {
    throw new IllegalStateException("Invalid attribute definition: The type of field '" + fieldName + "', type '"+ field.getType()+ "', in object '"+ objectType.getName()+ "', is not assignable to the type indicated: "+ fieldType.getName());
  }
  this.field=field;
}

public ReflectiveAttribute ( Class < O > objectType , Class < A > fieldType , String fieldName ) { super ( objectType , fieldType , fieldName ) ; Field field ; try { field = getField ( objectType , fieldName ) ; if ( ! field . isAccessible ( ) ) { field . setAccessible ( true ) ; } } catch ( Exception e ) { throw new IllegalStateException ( "Invalid attribute definition: No such field '" + fieldName + "' in object '" + objectType . getName ( ) + "'" ) ; } if ( ! fieldType . isAssignableFrom ( field . getType ( ) ) ) { throw new IllegalStateException ( "Invalid attribute definition: The type of field '" + fieldName + "', type '" + field . getType ( ) + "', in object '" + objectType . getName ( ) + "', is not assignable to the type indicated: " + fieldType . getName ( ) ) ; } this . field = field ; }
creates an attribute which reads values from the field indicated using reflection .
