Il y a plus d'une douzaine d'années, un utilisateur de Java a tenté d'étudier les fonctions de Java8 (Generics).

introduction

Récemment, j'ai eu la chance d'utiliser Java grâce à mon travail. J'ai mis à jour mes anciennes connaissances Java (1.3).

Qu'est-ce que les génériques

Cette fonction détermine le traitement du type à utiliser au moment de la mise en œuvre.

Cela seul est rafraîchissant, alors je voudrais l'expliquer avec un exemple.

Comparer avec / sans génériques par code

Code autour de Java 1.3

List list = new ArrayList();

//Stocker les valeurs dans la liste
// String ->Puisqu'il est converti en Object, il peut être stocké implicitement.
list.add("1");
list.add("2");
list.add("3");

for (Iterator it = list.iterator(); it.hasNext(); ) {
	//Obtenir et afficher la valeur de la liste
	//Objet au moment de l'acquisition->La chaîne a besoin d'un cast explicite
	String str = (String) it.next();
	System.out.println(str);
}

Code Java 8

//Préparer une ArrayList qui utilise le type String
List<String> list = new ArrayList<String>();
// List<String> list = new ArrayList<>(); //Puisque le type est fixe lorsque la variable est déclarée, lors de la création d'une instance<>Peut être omis


//Stocker les valeurs dans la liste
//La chaîne peut être stockée telle quelle
list.add("1");
list.add("2");
list.add("3");

for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
	//Obtenir et afficher la valeur de la liste
	//Pas besoin de lancer car il peut être obtenu avec String
	String str = it.next();
	System.out.println(str);
}

Qu'est-ce qui est bon à utiliser?

En Java1.3, lors de l'utilisation de collections J'ai dû le stocker en tant que type d'objet. Bien sûr, lors de son extraction, il s'agit également d'un type Object, j'ai donc dû le convertir en fonction du type utilisé.

L'auteur-compositeur doit lancer le casting lorsque celui-ci est retiré Si vous stockez le mauvais type, vous obtiendrez une ClassCastException. Bien sûr, c'est une exception, vous ne remarquerez donc pas l'erreur tant que vous ne l'exécuterez pas.

En revanche, si vous utilisez des génériques, vous pouvez déterminer le type au moment de l'implémentation. Mauvais type à stocker = Une erreur de compilation s'est produite C'est également une fonction qui permet de réduire les erreurs faciles.

Recommended Posts

Il y a plus d'une douzaine d'années, un utilisateur de Java a tenté d'étudier les fonctions de Java8 (Generics).
Il y a une dizaine d'années, un utilisateur de Java a tenté d'étudier les fonctions de Java8 (édition de style Lambda).
J'ai essayé de résumer les bases de kotlin et java
J'ai créé un client RESAS-API en Java
De Java naissant (3 ans) à Node.js (4 ans). Et l'impression de retourner à Java
J'ai essayé de résumer les méthodes de Java String et StringBuilder
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
Retour rapide sur Java au cours des cinq dernières années
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Comment savoir quelle version Java d'un fichier de classe a été compilée
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
Sortie du livre "Introduction à Java"
Ce que j'ai essayé quand je voulais obtenir tous les champs d'un haricot
Comment obtenir l'ID d'un utilisateur qui s'est authentifié avec Firebase dans Swift
Valider le jeton d'ID d'un utilisateur authentifié par AWS Cognito en Java
[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique
Faire une marge à gauche du TextField
java j'ai essayé de casser un simple bloc
Mesurer la taille d'un dossier avec Java
J'ai essayé de développer un site Web pour étudier DUO3.0.
Définir l'heure de LocalDateTime à une heure spécifique
J'ai essayé de casser le bloc avec java (1)
J'ai essayé de créer un outil de comparaison des prix des produits Amazon dans le monde entier avec Java, l'API Amazon Product Advertising, l'API Currency (29/01/2017)
Java Bienvenue dans le marais des tableaux bidimensionnels
[Java] Comment obtenir l'URL de la source de transition
Comment écrire Scala du point de vue de Java
05. J'ai essayé de supprimer la source de Spring Boot
J'ai essayé de réduire la capacité de Spring Boot
[Java] Comment obtenir la valeur maximale de HashMap
J'ai essayé de créer une compétence Clova en Java
J'ai essayé de créer une fonction de connexion avec Java
[Java] Lors de l'écriture du source ... Mémorandum ①
Java: utilisez Stream pour trier le contenu d'une collection
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
Une vue d'ensemble du framework Java natif de Kubernetes Quarkus
J'ai fini de regarder les roses de Versailles, alors j'ai essayé de reproduire la chanson de fin en Java
Jetons un coup d'œil aux fonctions de la console de gestion de Keycloak (édition utilisateur), service de compte utilisateur
Considérer l'adoption du langage Java à l'ère Reiwa ~ Comment choisir un SDK sûr
J'ai essayé de convertir l'exemple d'application en microservice selon l'idée du livre "Microservice Architecture".
[Java] J'ai essayé de créer un jeu Janken que les débutants peuvent exécuter sur la console