我有以下代码:
class MyWonderfulClass {
void go() {
Bar b = new Bar();
b.doStuff(new Foo() {
public void foof() {
System.out.println("foofy");
} // end foof method
}); // end inner class def, arg, and b.doStuff stmt.
} // end go()
} // end class
interface Foo {
void foof();
}
class Bar {
void doStuff(Foo f) { }
}
在第 4 行,匿名类作为参数传递。我想知道该类的方法 foof() 是如何被调用的。
实际上,我的问题源于以下事实,因为我无法理解以下代码:
public Employee getEmployeeById(longid){
return jdbcTemplate.queryForObject(SELECT_QUERY,
new RowMapper<Employee>(){
public Employee mapRow(ResultSetrs,
int rowNum)throwsSQLException{
Employee employee=newEmployee();
employee.setId(rs.getLong("id"));
employee.setFirstName(rs.getString("firstname"));
employee.setLastName(rs.getString("lastname"));
employee.setSalary(rs.getBigDecimal("salary"));
return employee;
}
},
id);
}
在我的主程序中,我调用 getEmployeeById 方法,该方法又调用 jdbcTemplate.queryForObject。在这个方法中,第二个参数是实现 RowMapper 的匿名类,它有方法 mapRow。如何调用方法 mapRow。