[JAVA] Apropos, eine anonyme Klasse ist erschienen.

Nein, es erschien als Profi.

button.addActionListener(
  new ActionListener(){
    @Override
    public void actionPerformed(ActionEvent event){
      /*Beschreiben Sie die Verarbeitung, wenn Sie hier auf die Schaltfläche klicken*/
    }
  }
);

darüber.

Anonyme Klasse

Es gibt eine Möglichkeit, eine ** anonyme Klasse ** zu schreiben, damit Sie vor Ort eine Klasse erstellen können.

Versuchen Sie beispielsweise, eine solche Schnittstelle zu entwerfen.

SampleInterface.java


interface SampleInterface{
    public void sampleMethod();
}

Lassen Sie uns nun diese ** anonyme Klasse ** generieren.

SampleInterface sample = new SampleInterface(){
    @Override
    public void sampleMethod(){
        System.out.println("Hello :-) ");
    }
}

sample.sampleMethod();
// >>> Hello :-) 

Sie können es so verwenden.

Was mache ich

ExampleClass.java


class ExampleClass implements SampleInterface{
    @Override
    public void sampleMethod(){
        System.out.println("Hello :-) ");
    }
}
SampleInterface sample = new ExampleClass();
sample.sampleMethod();
// >>> Hello :-) 

Gleich wie das. Sie können sich die Mühe sparen, eine Klasse zu erstellen, die die Schnittstelle in einer separaten Datei implementiert.

Wofür verwendest du es?

Damit können Sie die Verarbeitung selbst in andere Klassen einteilen.

SampleClass.java


class SampleClass{
    private SampleInterface sampleInterface;

    public SampleClass(SampleInterface sampleInterface){
        this.sampleInterface = sampleInterface;
    }

    public void callInterfaceMethod(){
        sampleInterface.sampleMethod();
    }
}
SampleClass sample = new SampleClass(
    new SampleInterface(){
        @Override
        public void sampleMethod(){
            System.out.println("Hellooooooo!!!! :-) ");
        }
    }
);

sample.callInterfaceMethod()
// >>> Hellooooooo!!!! :-)

So was.

Ich sehe es oft als ein Framework, das Java verwendet. Sie können die gewünschte Verarbeitung einfügen, ohne die Klasse zu ändern, die die Schaltflächen verarbeitet, sodass Sie die bequeme Verarbeitung des Frameworks unverändert lassen können. Selbst unter Android ist dieses Muster genau das, was Sie tun, wenn Sie eine Taste drücken.


Das ist alles für das ** Hörermuster **.

Recommended Posts

Apropos, eine anonyme Klasse ist erschienen.
Anonyme Klasse (anonyme Klasse)
Anonyme Java-Klasse