[JAVA] Comment faire un cache sans trop réfléchir

Exigences

Lorsque la sélection d'une bibliothèque est gênante et que vous ne voulez pas trop réfléchir mais voulez mettre en cache des objets. Si la taille du cache est petite et que vous n'avez pas besoin de vider le cache pendant l'exécution de la JVM. Cependant, il doit prendre en charge le traitement parallèle. Avec ces exigences, vous pouvez facilement l'implémenter sans avoir besoin d'une bibliothèque.

Méthode de mise en œuvre

ConcurrentHashMap # computeIfAbsentutilisation

Par exemple, si vous souhaitez obtenir un champ public d'une classe spécifique, cela ressemble à ceci.

public class PublicFieldCache {
  private static final Map<Class<?>, Field[]> cache = new ConcurrentHashMap<>();

  public static Field[] getFields(Class<?> type) {
    return cache.computeIfAbsent(type, Class::getFields);
  }
}

Recommended Posts

Comment faire un cache sans trop réfléchir
Comment créer un conteneur Java
Comment créer un pilote JDBC
Comment créer un écran de démarrage
Comment créer un plug-in Jenkins
Comment faire un projet Maven
Comment créer un tableau Java
Comment créer un résumé de calendrier Java
Comment créer un robot Discord (Java)
Comment faire un pot ombré
Comment mettre à jour les informations utilisateur sans mot de passe
Comment faire un MOD pour Slay the Spire
Java - Comment créer JTable
Comment laisser un commentaire
[Rails] Comment faire des graines
Comment insérer une vidéo
Comment créer une méthode
SDWebImage: Comment vider le cache pour une UIImageView particulière
Apprendre Ruby avec AtCoder 13 Comment créer un tableau à deux dimensions
Comment générer des valeurs de tableau sans utiliser d'instruction for
Comment joindre une table sans utiliser DBFlute et SQL
Essayez de faire un simple rappel
Comment créer un fichier jar sans dépendances dans Maven
Comment signer Minecraft MOD
[Swift] Comment envoyer une notification
Comment identifier le chemin sur lequel il est facile de se tromper
Essayez de créer un itérateur qui puisse être vu
Comment faire un diamant révolutionnaire en utilisant Java pour déclaration wwww
[Android] Comment créer un fragment de dialogue
Réglage des performances JVM: qu'est-ce que le réglage et comment élaborer un bon plan
Comment mettre à jour les modifications utilisateur dans Rails Devise sans entrer de mot de passe
Comment créer une application avec un mécanisme de plug-in [C # et Java]
Comment exécuter un contrat avec web3j
Comment trier une liste à l'aide du comparateur
Un mémorandum sur l'utilisation d'Eclipse
[Basique] Comment écrire un auto-apprentissage Dockerfile ②
Comment insérer une vidéo dans Rails
Comment ajouter un nouveau hachage / tableau
[Introduction à Java] Comment écrire un programme Java
Comment créer un référentiel Maven pour 2020
[Swift5] Comment créer un écran de démarrage
Comment publier une bibliothèque dans jCenter
[SpringBoot] Comment écrire un test de contrôleur
Comment faire une méthode de jugement pour rechercher n'importe quel caractère dans le tableau
Comment créer une combinaison unique de données dans la table intermédiaire des rails
C'était étonnamment facile. Comment mettre à jour les informations utilisateur sans entrer de mot de passe
Rails: comment bien écrire une tâche de râteau
Comment créer une base de données H2 n'importe où
[Rails] Comment écrire lors de la création d'une sous-requête
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
[Android] Comment convertir une chaîne de caractères en resourceId
Faire une marge à gauche du TextField