"J'en suis venu à réaliser que l'interface fonctionnelle et d'autres choses sont utiles, mais à quoi sert cette" identité "? Que diable voulez-vous retourner une fonction qui ne fait que retourner?" On m'a dit, c'est donc un tout nouveau mémo.
//S'il y a une telle classe
@Data
class Obj {
private int id;
private String data;
}
//Supposons que ce soit une liste
List<Obj> list = <some>;
// key:id, value:Générer une carte d'obj(* J'ai l'impression qu'il y a une meilleure main)
Map<Integer, Obj> map = list.stream().collect(Collectors.toMap(obj::getId, Function.identity()));
L'interface fonctionnelle est une interface pour recevoir "l'opération elle-même". Il traite toutes sortes d'opérations comme ça avec des signatures. Cependant, lorsque j'écris des choses en utilisant ce bang bang, il n'est pas rare que je dise: "Non, vous pouvez simplement le laisser tel quel! Ne faites rien!" L'identité est utile dans de tels cas.
Bien sûr, la même chose peut être faite en écrivant o-> o en lambda, mais ce n'est pas exactement la même chose. Il est notoire que les lambdas sont en fait des classes locales anonymes, ce qui signifie que plus vous les utilisez, plus vous utilisez de classes et d'instances. Cela signifie un peu de charge. (C'est vrai, pouvoir le passer en argument signifie qu'il a une entité comme objet)
D'autre part (en fonction de l'implémentation JVM), l'identité renvoie toujours la même instance: https://stackoverflow.com/questions/28032827/java-8-lambdas-function-identity-or-t-t Certes, si cela se termine sûrement en un seul plan, vous pouvez l'écrire légèrement avec lambda. Cependant, en gros, l'utilisation de Function.identity ou UnaryOperator.identity présente l'avantage que vous pouvez être assuré que vous ne produirez pas en masse par inadvertance des instances inutiles. Pardonnons un peu plus de types et d'importations.
identité = égalité. L'identité de méthode renvoie une fonction égale. Une fonction égale est une «fonction qui renvoie l'argument passé» et est l'élément unitaire dans la combinaison de fonctions. En d'autres termes, c'est comme le chiffre 1 (bien que cela dépende de la zone du contexte, mais sensuellement).
Recommended Posts