getFieldValue(String fieldName) is currently defined to throw an IllegalArgumentException if fieldName is null or empty; this was done to match the contract of getFieldValue(int fieldIndex), but in this case it is not necessary as null can simply be returned when the fieldName given is incorrect/invalid in any way.
This would also do away with the pre-condition checks.
getFieldValue(String fieldName) is currently defined to throw an IllegalArgumentException if fieldName is null or empty; this was done to match the contract of getFieldValue(int fieldIndex), but in this case it is not necessary as null can simply be returned when the fieldName given is incorrect/invalid in any way.
This would also do away with the pre-condition checks.