在 Java 中提供对私有方法的有限访问
在 Java 中,不可能直接复制 C“朋友”概念,这允许外部实体访问类的私有成员。然而,使用替代技术可以实现类似的行为。
爱情签名方法
实现受控访问的一种巧妙方法是使用“秘密”签名。它的工作原理如下:
示例:
考虑两个类,Romeo和朱丽叶,来自不同的包裹。 Romeo 需要访问 Juliet 中的私有方法,而不将其设为子类。
朱丽叶的代码:
// 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 是一个具有私有构造函数的公共类,确保只有 Romeo 可以创建实例。
Romeo 的代码:
// 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); } }
此方法利用签名类构造函数的排他性来授予对所需方法的选择性访问同时保持封装和隐私。
以上是如何在不使用“Friend”概念的情况下实现对 Java 中私有方法的有限访问?的详细内容。更多信息请关注PHP中文网其他相关文章!