Implémentez rapidement singleton avec enum en Java

Dans le passé, j'utilisais Initialize-On-Demand Holder, mais j'ai récemment créé un singleton net avec enum. Voici un exemple de classe utilitaire de chaîne.

Exemple d'implémentation

Fondamentalement, créez une énumération qui a également le seul élément, ʻINSTANCE`, Il ne vous reste plus qu'à créer normalement une méthode publique. C'est facile et facile.

StringUtility.java


package jp.fumokmm;

import java.util.Objects;

public enum StringUtility {
	INSTANCE;

	/**
	 * <p>Coupe la chaîne spécifiée.
	 *Si la chaîne de caractères spécifiée est nulle, un caractère vide sera renvoyé.</p>
	 * @param str string à couper
	 * @return String après la coupe
	 */
	public String trim(String str) {
		return Objects.nonNull(str) ? str.trim() : "";
	}

	/**
	 * <p>Coupe la chaîne de caractères spécifiée (y compris les espaces pleine largeur).
	 *Si la chaîne de caractères spécifiée est nulle, un caractère vide sera renvoyé.</p>
	 * @param str string à couper
	 * @return String après la coupe
	 */
	public String trimFull(String str) {
		if (Objects.isNull(str)) return "";
		int len = str.length();
		int st = 0;
		char[] val = str.toCharArray();
		while (st < len && (val[st] <= ' ' || val[st] == ' ')) {
			st++;
		}
		while (st < len && (val[len - 1] <= ' ' || val[len - 1] == ' ')) {
			len--;
		}
		return (st > 0 || len < str.length()) ? str.substring(st, len) : str;
	}

}

Exemple d'utilisation

StringUtilityTest.java


package jp.fumokmm;

import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;

import org.junit.Test;

public class StringUtilityTest {

	@Test
	public void testTrim() {
		StringUtility util = StringUtility.INSTANCE;
		assertThat(util.trim(null), is(""));
		assertThat(util.trim(" "), is(""));
		assertThat(util.trim(" a "), is("a"));
		assertThat("L'espace pleine largeur n'est pas coupé", util.trim("  a  "), is("  a  "));
	}

	@Test
	public void testTrimFull() {
		StringUtility util = StringUtility.INSTANCE;
		assertThat(util.trimFull(null), is(""));
		assertThat(util.trimFull(" "), is(""));
		assertThat(util.trimFull(" a "), is("a"));
		assertThat("L'espace pleine largeur est également coupé", util.trimFull("  a  "), is("a"));
	}

}

Au fait, dans le test ci-dessus

StringUtility util = StringUtility.INSTANCE;

Je l'utilise après l'avoir assigné à une variable une fois comme

StringUtility.INSTANCE.trim(str);

Vous pouvez l'utiliser tel quel. Veuillez vérifier la lisibilité et l'utiliser.

c'est tout.

Recommended Posts

Implémentez rapidement singleton avec enum en Java
3 Implémentez un interpréteur simple en Java
Implémenter quelque chose comme une pile en Java
Diviser une chaîne avec ". (Dot)" en Java
Je veux ForEach un tableau avec une expression Lambda en Java
GetInstance () à partir d'une classe @Singleton dans Groovy à partir de Java
Lire une chaîne dans un fichier PDF avec Java
Créer un CSR avec des informations étendues en Java
Coincé devant le forgeron par enum
Sortie true avec if (a == 1 && a == 2 && a == 3) en Java (identifiant invisible)
Pourquoi implémenter avec singleton au lieu de la méthode statique
Implémentation de l'authentification en deux étapes en Java
Implémenter l'authentification de base en Java
Rechercher un sous-ensemble en Java
Implémenter une combinaison de mathématiques en Java
Modèle de stratégie Enum en Java
2 Implémentez une analyse syntaxique simple en Java
Implémenter l'envoi d'e-mails en Java
Implémenter un tri rapide de type fonction en Java
Reproduire l'énumération Java en C #
Implémentez rm -rf en Java.
Implémenter la signature XML en Java
Créer un SlackBot avec AWS lambda et API Gateway en Java
Obtenez facilement des entiers à partir des propriétés système en Java
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
Obtenir une collection non vide à partir d'un flux facultatif avec java
Créer une classe immuable avec JAVA
Implémenter un test piloté par table dans Java 14
J'ai envoyé un e-mail en Java
Construire un projet Java avec Gradle
Analyse morphologique en Java avec Kuromoji
[Java EE] Implémenter le client avec WebSocket
[Java] Énumération des branches avec instruction switch
J'ai créé un PDF avec Java.
Créez une énumération haute performance avec des champs et des méthodes comme Java avec JavaScript
Comment implémenter un travail qui utilise l'API Java dans JobScheduler
Tri d'une liste avec un tableau de type int comme élément (Java) (Comparator)
Implémenter reCAPTCHA v3 dans Java / Spring
Implémenter la fonction PHP implode en Java
Essayez une expression If en Java
[Java] Comment rechercher des valeurs dans un tableau (ou une liste) avec la méthode contains
Implémenter le client gRPC dans Ruby
Un exemple simple de rappels en Java
Implémenter un formulaire de contact dans Rails
Convertir un tableau de chaînes en une liste d'entiers en Java
[Java] Réduire les instructions if avec Enum
J'ai fait une annotation en Java.
Comment formater enum à l'aide de formatter-maven-plugin (Java)
Le calendrier Java n'est pas un singleton.
Essayez d'implémenter Yuma en Java
Restez coincé dans un Java Primer
1 Implémentez une analyse de phrase simple en Java
Tweak Markdown avec Java flexmark-java
Exécuter des applications écrites en Java8 en Java6
Exécuter un processus externe en Java
[Mémo personnel] Comment interagir avec le générateur de nombres aléatoires en Java
[Java] Comment transformer un tableau à deux dimensions avec une instruction for étendue
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (édition PowerMockito)
Je voulais mettre en place un diaporama de manière à la mode avec slick.
J'ai écrit une fonction Lambda en Java et l'ai déployée avec SAM