Maison > Java > javaDidacticiel > Comment créer des instances CaseInsensitiveString : constructeur ou méthode de fabrique statique ?

Comment créer des instances CaseInsensitiveString : constructeur ou méthode de fabrique statique ?

Patricia Arquette
Libérer: 2024-11-15 02:39:02
original
1100 Les gens l'ont consulté

 How to Create CaseInsensitiveString Instances: Constructor or Static Factory Method?

Java Strings : pointer du doigt "String s = new String("silly")"

En s'aventurant dans le monde de la programmation Java , une question émerge concernant la création appropriée d'objets String. La préoccupation vient de la notion d'éviter la création inutile de chaînes en utilisant des littéraux au lieu d'appels "new String(...)". Cependant, ces conseils semblent contredire l'utilisation de classes de chaînes personnalisées telles que CaseInsensitiveString.

Question 1 : Pourquoi l'utilisation de « new CaseInsensitiveString(...) » est-elle nécessaire ?

Contrairement au cas simpliste de String, CaseInsensitiveString est une classe personnalisée définie par le programmeur. Les instances de cette classe ne peuvent être créées que via le constructeur désigné "CaseInsensitiveString(...)". Comme Java ne prend pas en charge les constructeurs de copie, le constructeur doit être explicitement invoqué pour initialiser l'état interne de l'objet.

Question 2 : Adapter CaseInsensitiveString pour qu'il se comporte comme String

Alors que le Le comportement par défaut de CaseInsensitiveString nécessite l'utilisation de son constructeur, il existe des moyens potentiels d'imiter la syntaxe simplifiée de la classe String intégrée.

Avec extension :

  • L'extension de String permettrait à CaseInsensitiveString d'hériter de son comportement.
  • Le remplacement de la méthode de fabrique statique de String permettrait une instanciation directe à partir de littéraux.
  • Cependant, cette approche couple étroitement CaseInsensitiveString à la classe String, limitant sa flexibilité et introduisant des problèmes de maintenance potentiels.

Sans extension :

  • La mise en œuvre d'une méthode statique "valueOf(...)" personnalisée serait permettre la création d'instances CaseInsensitiveString à partir de littéraux.
  • Cela préserve l'indépendance de CaseInsensitiveString par rapport à la classe String tout en fournissant une syntaxe plus pratique pour l'initialisation.
  • Dans le cadre "valueOf(...) ", une nouvelle instance de CaseInsensitiveString serait créée en utilisant le littéral passé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal