Java implementa retorno de chamada
Os desenvolvedores familiarizados com os padrões de design orientados a eventos do MS-Windows e X Windows geralmente passam um ponteiro para a fonte do evento e chamam esse método quando ocorre um evento (também conhecido como "retorno de chamada"). Atualmente, o modelo orientado a objetos de Java não suporta ponteiros do método, e parece que esse mecanismo conveniente não pode ser usado.
Java suporta interface e o mesmo retorno de chamada pode ser implementado através da interface. O truque é definir uma interface simples e declarar um método chamado de volta pelo desejado.
Por exemplo, suponha que um evento seja notificado quando ocorrer, podemos definir uma interface:
interface pública interessanteEvent {// Este é apenas um método comum, que pode receber parâmetros ou retornar o valor public void interessanteEvent ();} Dessa forma, temos qualquer alça de alça que implemente esse objeto de classe de interface.
Quando ocorre um evento, o objeto que implementa a interface interessante deve ser notificada e o método interessanteEvent () precisa ser chamado.
classe EventNotifier {private InteressionEvent IE; Private Boolean Something Thalpinged; public eventNotifier (evento interessante e evento) {ie = Event; algo que é exagerado = false; } public void Dowork () {
if (algo que é elaborado) {
// Quando ocorrer um evento, notifique a interface chamando este método
ie.interestingEvent ();
}
}
}Neste exemplo, algo que é usado para marcar se ocorre um evento.
A classe que deseja receber notificações de eventos deve implementar a interface interessante e passar sua própria referência ao notificador de eventos.
classe pública callme implementa interessantes. public callMe () {// Crie um novo objeto de notificação de eventos e o passa para ele = new EventNotifier (this); } // Implemente o método de realmente lidar com eventos quando um evento ocorre public void interessanteEvent () {// este evento ocorre, processe}}O acima é um exemplo muito simples para ilustrar a implementação de retornos de chamada em Java.
Obviamente, vários objetos interessados neste evento também podem ser registrados na classe de gerenciamento de eventos ou notificação de eventos.
1. Defina uma interface interessante e o método de retorno de chamada desconhecido (evento da string) simplesmente recebe um parâmetro de string.
interface interessanteEvent {public void interessanteEvent (evento de string);}2. Implemente a interface interessante e a classe de processamento de eventos
classe CallMe implementa interessanteEvent {private String Name; public callme (nome da string) {this.name = name; } public void interessanteEvent (evento de string) {System.out.println (nome + ": [" + evento + "] aconteceu"); }} 3. Gerente de eventos ou notificação de eventos
classe EventNotifier {Private List <CallMe> callmes = new ArrayList <PLALME> (); Public void Regist (callme callme) {Callmes.add (callMe); } public void Dowork () {for (callme callme: CallMes) {Callme.interestingEvent ("Evento de amostra"); }}}4. Teste
classe pública callMetest {public static void main (string [] args) {eventNotifier ren = new EventNotifier (); Callme a = novo callme ("callme a"); Callme b = novo callme ("callme b"); // regest Ren.regist (a); Ren.regist (B); // teste ren.dowork (); }}O exposto acima é uma introdução ao mecanismo de retorno de chamada Java. Os alunos necessitados podem se referir a ele.