Implementations of this interface convert ResultSets into other objects.
which pinpoints exactly where we would want to write the algorithm which populates the a Row instance as well as have a callback to a template method to create its corresponding object.
That template method is what will allow subclasses to create objects with the given Row which is populated with all the values required in a type safe manner!
You may notice that we call ResultSet#getObject(String) to retrieve the value for a given column and think that this is wrongly specified. If you read the Javadoc closely though you will notice that the type of the object is right there and is what allows us to take advantage of the heterogeneous container concept.
This method will return the value of the given column as a Java object. The type of the Java object will be the default Java object type corresponding to the column's SQL type, following the mapping for builtwin types specified in the JDBC specification.