Maison  >  Article  >  Utiliser deux génériques pour implémenter une interface

Utiliser deux génériques pour implémenter une interface

王林
王林avant
2024-02-09 10:45:09409parcourir

L'éditeur PHP Xinyi vous présentera comment utiliser deux génériques pour implémenter l'interface. Les génériques sont une fonctionnalité qui permet l'utilisation de paramètres de type dans les langages de programmation, ce qui peut augmenter la flexibilité et la réutilisabilité du code. Lors de l'implémentation d'une interface, nous pouvons utiliser des génériques pour spécifier les paramètres de type dans l'interface, afin que différents types de données puissent être utilisés dans différents scénarios. Cette méthode peut rendre notre code plus polyvalent et évolutif et améliorer l'efficacité du développement. Dans cet article, nous expliquerons en détail comment utiliser deux génériques pour implémenter l'interface et donnerons un exemple de code pour votre référence.

Contenu de la question

J'ai une tâche dans mes devoirs mais je n'arrive pas à m'en remettre.

Le code de l'interface du transformateur est le suivant :

public interface transformer<from, to> {
    to transform(from value);
}

Jusqu'à présent, le code de la classe personsubscribertransformer ressemble à ceci :

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;
    }
  }
Les paramètres de la méthode

transform devraient être list0833d296851a1e081f2175a4cbfa7135并且它应该返回一个list2dd1b1a23a493c1b50630f436ee0c708. Lorsque je modifie les paramètres, je reçois un message d'erreur indiquant que je dois extraire la méthode vers l'interface du transformateur.

Quelle est la solution pour mettre en œuvre cette méthode de la bonne manière ?

Solution

selon transform 的预期签名,from 应该是 list0833d296851a1e081f2175a4cbfa7135to 应该是 list<subscriberphpcngt phpcn. Les classes elles-mêmes ne doivent pas être génériques.

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer