En Java no vas a poder pasar punteros a funciones como tal.
En Java se pasan objetos o valores nativos, que no vienen al caso ahora.
Cuando una función recibe un "callback", del tipo que sea, lo que recibe es un objeto con (generalmente) 1 método que será llamado. Por ejemplo, una función podría recibir como parámetro una interfaz como esta:
Código
interface Callback { void doIt(); }
Y esta sería la clae que almacena el "callback":
Código
public class Test { private Callback callback; public Test(Callback callback) { this.callback = callback; } public callIt() { callback.doIt(); } }
Eso es todo, no hay más. En Java todo es muy simple, solo hay que adaptarse a ello.
Además, en Java 8, se ha agregado una sintaxis para los callbacks de este estilo. Antes, se hacía así una "lambda":
Código
Test test = new Test(new Callback(){ public void doIt(){ // Code } });
Ahora, con Java 8:
Código
Test test = new Test(() -> { /* Code */ });