Génériques carte clé devrait permettre à deux classes seulement et la valeur d'une classe

d-man:

L'utilisation des médicaments génériques que je veux faire ma méthode Paramétrez pour accepter la carte de clé (A ou B) et de la valeur que le modèle qui plus tard, il se transforme en carte de Map<UUID, Model>

Le problème est que je reçois une erreur sur entry.getKey().getId()b / c. Je n'ai pas défini ce qui est? une clé. Quelqu'un peut -il aider?

public void method(Map<?, Model> map) {
  Map<UUID, Model> transformation =
      map.entrySet().stream()
          .collect(
              Collectors.toMap(entry -> entry.getKey().getId(), entry -> entry.getValue()));
}

class S {
  protected UUID getId() {
    // return UUID
  }
}

class A extends S {}

class B extends S {}

class Model {
  // bla bla
}
Andy Turner:

Si Aet Bmettre en œuvre une interface commune offrant la getId()méthode, le caractère générique lié à cela:

public void method(Map<? extends S, Model> map) {

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=215232&siteId=1
conseillé
Classement