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方法。
您傳遞實例的方法正在調用該方法,就像傳遞任何其他類型的實例一樣。 – Sinkingpoint