Java 8 de Collecte de flux de Collectionneurs.toMap

Pourquoi ce code n'est pas de compiler pour moi?

J'essaie de convertir la Liste de Carte à l'aide de flux et toMap option

List<CountryToPaymentMethodsDisplayRules>
   paymentMethodDisplayRulesByCountryList = 
       gatway.getCountryPaymentMethodsDisplayRulesByCountry();

Map<PaymentMethod, CountryToPaymentMethodsDisplayRules>
   countryToPaymentMethodsDisplayRulesMap = paymentMethodDisplayRulesByCountryList
       .stream()
       .collect(Collectors.toMap(type -> type.getCountryToPaymentMethodsDisplayRules().getPaymentMethod(),
                                 type -> type));

public interface PaymentMethod extends Serializable {
}

public enum PaymentMethodType implements PaymentMethod, Serializable {
}

public interface CountryToPaymentMethodsDisplayRules {
    public PaymentMethod getPaymentMethod();
}

public class CountryToPaymentMethodsDisplayRulesEntity implements CountryToPaymentMethodsDisplayRules, PersistentEntity<Long>, Serializable {
    @Type(type = "com.plimus.core.payment.PaymentMethodTypeUserType")
    @Column(name = "PAYMENT_TYPE")
    private PaymentMethod paymentMethod;
}

Quel est le problème ici?

  • Eh bien, vous avez fourni un code (que j'ai reformaté pour vous - veuillez lire la mise en forme de l'aide et éviter l'affichage jusqu'à ce que l'aperçu montre raisonnable de mise en forme), mais vous n'avez pas dit en quoi ça ne fonctionne pas... Idéalement, la réécriture de ce que un minimum de reproductibles exemple.
  • Je ne trouve pas de méthode getCountryToPaymentMethodsDisplayrules. Pourriez-vous donner quelques informations sur cette méthode?
  • En effet, quel est le problème ici? Elle produit une exception? Elle produit une carte vide? Il tourne indéfiniment? Nous ne saurons jamais!
InformationsquelleAutor Yaron Tzur | 2017-03-17