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.
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); }
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; } }
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?
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; } }
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!