gpt4 book ai didi

java - 返回一个实现接口(interface)的私有(private)类,保持实现私有(private)

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:30:45 24 4
gpt4 key购买 nike

静态方法M 返回一个实现接口(interface)A 的对象:

interface A { ... }
static A M() { ... }

M 中,我想构造一个 B 类型的对象并返回它,因为 B 实现了 A:

class B implements A { ... }

我不想让客户端代码知道 B 是如何实现的,我希望 B 不是 >static 类,B 必须 是不可变的,可以有不同的 B 交给不同的客户。我想不惜一切代价阻止 B 在方法 M 之外的实例化(正如一位用户评论的那样,缺少反射)。

我怎样才能实现上述目标?我应该在哪里以及如何实现 B?您能否提供一个简短的代码示例?

我的主要问题是:我怎样才能拥有“不同的 B?”

最佳答案

静态内部类可能是您最好的选择。您将无法“不惜一切代价阻止 B 的实例化”,因为使用反射,客户端代码可以绕过所有访问修饰符。

关于java - 返回一个实现接口(interface)的私有(private)类,保持实现私有(private),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11812651/

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