Я имею следующий код:как сделать вызов на анонимный внутренний класс
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