在Java 中提供對私有方法的有限存取
在Java 中,不可能直接複製C「朋友」概念,這允許外部實體存取類別的私有成員。然而,使用替代技術可以實現類似的行為。
愛情簽名方法
實現受控存取的一種巧妙方法是使用「秘密」簽章。它的工作原理如下:
範例:
考慮來自不同包的兩個類,Romeo 和Juliet。 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中文網其他相關文章!