Fournir un accès limité aux méthodes privées en Java
En Java, il n'est pas directement possible de reproduire le concept "ami" C, qui permet accès aux membres privés d’une classe à des entités externes. Cependant, un comportement similaire peut être obtenu en utilisant des techniques alternatives.
L'approche de la signature d'amour
Une approche intelligente pour obtenir un accès contrôlé consiste à utiliser une signature « secrète ». Voici comment cela fonctionne :
Exemple :
Considérons deux classes, Roméo et Juliette, provenant de packages différents. Roméo doit accéder aux méthodes privées dans Juliet sans en faire une sous-classe.
Code de Juliette :
// Capulet package public class Juliet { public static void cuddle(Romeo.Love love) { Objects.requireNonNull(love); // Juliet's private methods can be accessed here. } }
Romeo.Love est une classe publique avec un constructeur privé, garantissant que seul Roméo peut créer une instance.
Romeo's Code :
// Montague package public class Romeo { public static final class Love { private Love() {} } private static final Love love = new Love(); public static void cuddleJuliet() { Juliet.cuddle(love); } }
Cette approche exploite l'exclusivité du constructeur de classe de signature pour accorder un accès sélectif aux méthodes souhaitées tout en préservant l'encapsulation et la confidentialité.
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!