Heim > Java > Verwenden Sie zwei Generika, um die Schnittstelle zu implementieren

Verwenden Sie zwei Generika, um die Schnittstelle zu implementieren

王林
Freigeben: 2024-02-09 10:45:09
nach vorne
460 Leute haben es durchsucht

Der PHP-Editor Xinyi stellt Ihnen die Methode zur Verwendung von zwei Generika zur Implementierung der Schnittstelle vor. Generics sind eine Funktion, die die Verwendung von Typparametern in Programmiersprachen ermöglicht, wodurch die Flexibilität und Wiederverwendbarkeit von Code erhöht werden kann. Bei der Implementierung einer Schnittstelle können wir Generika verwenden, um die Typparameter in der Schnittstelle anzugeben, sodass unterschiedliche Datentypen in unterschiedlichen Szenarien verwendet werden können. Diese Methode kann unseren Code vielseitiger und skalierbarer machen und die Entwicklungseffizienz verbessern. In diesem Artikel erklären wir ausführlich, wie Sie zwei Generika zum Implementieren der Schnittstelle verwenden, und geben Beispielcode als Referenz.

Frageninhalt

Ich habe eine Aufgabe in meiner Hausaufgabe, komme aber nicht damit klar.

Der Code der Transformatorschnittstelle lautet wie folgt:

public interface transformer<from, to> {
    to transform(from value);
}
Nach dem Login kopieren

Bisher sieht der Code für die personsubscribertransformer-Klasse so aus:

public class PersonSubscriberTransformer<FROM, TO> implements Transformer {
    private Predicate<Person> predicate;
    public PersonSubscriberTransformer(Predicate<Person> predicate) {
        this.predicate = predicate;
    }
    @Override
    public Object transform(Object value) {
        return null;
    }
  }
Nach dem Login kopieren
Die Parameter der

transform-Methode sollten list<person>并且它应该返回一个list<subscriber> sein. Wenn ich die Parameter ändere, erhalte ich eine Fehlermeldung, die besagt, dass ich die Methode auf die Transformer-Schnittstelle ziehen soll.

Was ist die Lösung, um diese Methode richtig umzusetzen?

Lösung

laut transform 的预期签名,from 应该是 list<person>to 应该是 list<subscriberphpcngt phpcn. Klassen selbst sollten nicht generisch sein.

public class PersonSubscriberTransformer implements Transformer<List<Person>, List<Subscriber>> {
    // constructor...
    
    @Override
    public List<Subscriber> transform(List<Person> persons) {
        // complete this method...
        return null;
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonVerwenden Sie zwei Generika, um die Schnittstelle zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage