Java: Favor Generic Methods If Possible
By admin on Oct 31, 2008 in open source
Instead of this,
1: /**
2: * General select statement which allows you to pass in
3: * arbitrary parameter object
4: *
5: * @param obj Parameter object
6: * @param sqlQuery SQL statement
7: * @return The desired return type
8: * @throws DaoException Database exception
9: */
10: protected Object select(Object obj, String sqlQuery) throws DaoException {
11: try {
12: Object result = sqlMapClient.queryForObject(sqlQuery, obj);
13: return result;
14: } catch (SQLException e) {
15: throw new DaoException("Error running SQL statement: " + sqlQuery +
16: ". Error message is " + e.getMessage(), e);
17: } catch (SqlMapException sqlMapEx) {
18: throw new DaoException("Error running SQL statement: " + sqlQuery +
19: ". Error message is " + sqlMapEx.getMessage(), sqlMapEx);
20: }
21: }
You should try to use generic method starting JDK 5.
1: /**
2: * General select statement which allows you to pass in
3: * arbitrary parameter object
4: *
5: * @param obj Parameter object
6: * @param sqlQuery SQL statement
7: * @return The desired return type
8: * @throws DaoException Database exception
9: */
10: protected <E, F> F select(E obj, String sqlQuery) throws DaoException {
11: try {
12: Object result = sqlMapClient.queryForObject(sqlQuery, obj);
13: return (F) result;
14: } catch (SQLException e) {
15: throw new DaoException("Error running SQL statement: " + sqlQuery +
16: ". Error message is " + e.getMessage(), e);
17: } catch (SqlMapException sqlMapEx) {
18: throw new DaoException("Error running SQL statement: " + sqlQuery +
19: ". Error message is " + sqlMapEx.getMessage(), sqlMapEx);
20: }
21: }
Post a Comment