Java 8 Fournisseur avec des arguments dans le constructeur

Pourquoi fournisseurs de soutien non-arg constructeurs?

Si le constructeur par défaut est présent, je peux le faire:

create(Foo::new)

Mais si le seul constructeur prend une Chaîne de caractères, j'ai pour ce faire:

create(() -> new Foo("hello"))
  • Comment le compilateur suppose que l'argument est censé être "bonjour"?
  • Votre question n'a simplement aucun sens. Vous écrivez “Pourquoi les fournisseurs de travailler uniquement avec les non-arg constructeurs?”, ensuite, vous vous prouver qu'un Supplier ne fonctionne pas avec les arguments fournis, c'est à dire lors de l'utilisation d'une expression lambda. Il semble donc votre question est “pourquoi est-ce une référence à une méthode de travail que si le fonctionnel paramètres correspondent aux paramètres cible” et la réponse est, parce que c'est ce que la méthode références sont pour. Si la liste de paramètres ne correspondent pas, l'utilisation d'une expression lambda comme vous l'avez indiqué dans votre question. Parce que c'est ce que l'expression lambda sont pour (pas exclusivement)...
InformationsquelleAutor cahen | 2015-07-06