Java Spring框架jdbcTemplate的queryForObject方法

Java Spring框架jdbcTemplate的queryForObject方法,java,spring,jdbc,Java,Spring,Jdbc,我刚接触Spring,读了Spring in Action一书,我对以下示例有一个问题: public Employee getEmployeeById(long id) { return jdbcTemplate.queryForObject( "select id, firstname, lastname, salary " + "from employee where id=?", new RowMapper<Employee>() {

我刚接触Spring,读了Spring in Action一书,我对以下示例有一个问题:

public Employee getEmployeeById(long id) {
  return jdbcTemplate.queryForObject(
      "select id, firstname, lastname, salary " +
      "from employee where id=?",
      new RowMapper<Employee>() {
        public Employee mapRow(ResultSet rs,
                int rowNum) throws SQLException {
          Employee employee = new Employee();
          employee.setId(rs.getLong("id"));
          employee.setFirstName(rs.getString("firstname"));

          employee.setLastName(rs.getString("lastname"));
          employee.setSalary(rs.getBigDecimal("salary"));
          return employee;
        }
      },
      id);
}
queryForObject的第二个参数new RowMapper的类型是什么,这是什么样的Java语法

它看起来像是获得了一个类行映射器的新实例,直到大括号出现,它看起来像是只使用一个方法mapRow的类声明。这种语法看起来很奇怪,我从未在Java中见过它

有人能解释一下这是什么吗


非常感谢

这是一个匿名类

匿名类使您的代码更加简洁。他们 使您能够同时声明和实例化类。他们 与本地类类似,只是它们没有名称。使用它们 如果只需要使用一次本地类


谢谢,而且似乎一个匿名类应该总是有一个父类/接口?@alfredhong这个匿名类总是扩展另一个类/接口,所以是的,它需要有一个“父类”,您可以在其中重写这些方法。