Я пытаюсь реализовать интерфейс RowMapper от Spring, однако моя IDE предлагает мне вернуть объект возврата в «T», и я не понимаю, почему. Может ли кто-нибудь объяснить, что мне не хватает?Реализация интерфейса с общим типом
public class UserMapper<T> implements RowMapper<T> {
public T mapRow(ResultSet rs, int row) throws SQLException {
User user = new User();
user.firstName(rs.getInt("fname"));
user.lastName(rs.getFloat("lname"));
return user; // Why am I being prompted to cast this to "T", should this be fine?
}
}
Как компилятор должен знать, что 'T' представляет' Пользователь'? Возможно, вы хотите реализовать интерфейс как «реализует RowMapper' вместо этого? –
Я думал, что компилятор узнает из экземпляра класса, то есть: новый UserMapper(); –
MarkPenn
Но когда вы говорите, что класс 'UserMapper', вы говорите, что для нового экземпляра можно указать любой тип. Например, 'new UserMapper ()'. Тем не менее, класс вернет «Пользователь»! –
ColinD