gpt4 book ai didi

java - 我需要一个可以从我的 API 中的任何地方访问但不能从使用 API 的应用程序访问的 java 方法

转载 作者:搜寻专家 更新时间:2023-10-31 20:34:18 30 4
gpt4 key购买 nike

我正在开发 Java API。在我的开发过程中,我一直面临以下问题:

我在两个不同的包中有两个类。包 x 中的 A 类和包 y 中的 B 类。我需要类 A 访问类 B 中定义的方法 M。因此,应该用于方法 M 的修饰符是 public。但是,我不想让将在他/她的 Java 应用程序中使用我的 API 的开发人员访问方法 M。问题是方法 M 具有我提到的 public 修饰符,并且因此任何人都可以在 API 内或 API 外访问它。同时,如果我将方法 M 的修饰符级别降低为 protectedprivate,类 A 将无法访问方法 M,因为它属于一个不同的包。我怎么解决这个问题?将 A 和 B 放在同一个包中是我唯一的解决方案吗?

最佳答案

创建一个接口(interface)并仅向公众公开该接口(interface),隐藏您的实现。例如:

我的实现(例如,application.jar):

public class Test implements TestInterface {
public void somePrivateStuff() { }

public void somePublicStuff() { }
}

亲爱的世界,这是我的 API(例如,publicAPI.jar):

public interface TestInterface {
public void somePublicStuff();
}

其他开发人员会针对您的 publicAPI.jar 进行编译。运行时实现将来自您的 application.jar。

关于java - 我需要一个可以从我的 API 中的任何地方访问但不能从使用 API 的应用程序访问的 java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23962143/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com