当前位置: 首页 > 面试题库 >

使Java方法仅对特定类可见

丁兴德
2023-03-14
问题内容

我有一个经理类,负责管理某种对象。为此,需要操纵这些对象,但是这些对象与管理器没有任何关系,因此从技术上来说,它们位于单独的程序包“
project.managers”和“
project.objects”中。重要的是,所讨论的对象仅应由管理者操作,而不能在其他任何地方操作,而需要项目中的所有其他类都可以访问。

因此,我希望管理人员有权使用操作方法,但要限制对其他所有类的访问。最明显的一个方法是将管理器类和对象类移到同一程序包中,并声明要保护的操作方法,但是由于管理器和对象是完全独立的实体,因此从哲学上讲它们并不适合。

(部分原因是,当我在有关对象上自动完成代码时,我希望我的IDE停止向我显示操作方法,因此,我总是必须经过管理器,以便每当更改有关对象时,正确更新相应的表)

是否有任何想法或明显的方法在任何情况下都是最好的?


问题答案:

为什么不叫一个接口

ManagerFunctions

另一个叫做

ClientFunctions

您管理的对象将实现 这两个

创建托管对象时,您将它们传递给其他对象,但仅作为对的引用ClientFunctions。但是,管理器对象将引用它们ManagerFunctions,因此可以访问其“托管”功能。适当的转换只会暴露出适当的方法。

根据如何引用这些对象,您的IDE将自动为您提供适当的方法。



 类似资料:
  • 问题内容: 我的Java应用程序出现问题,JIT破坏了代码。如果禁用JIT,一切正常,但运行速度慢10-20倍。 有什么方法可以禁用特定方法或类的JIT吗? 编辑:我正在使用Ubuntu 10.10,得到相同的结果都与: 和: 问题答案: 以下选项适用于我的JVM,以排除特定方法:

  • 我有一个注释@API,它分配给Java Spring中一个控制器中的所有路由,即RequestMapping。我想做的是,首先扫描一个包中用@controller注释的所有类,在扫描所有控制器类之后,我只想在这些控制器注释的类中扫描带有注释@API的方法。 我如何在Java中使用反射来实现这一点?

  • 问题内容: 从子类对象调用该方法时,是否有任何优雅的方法可以使位于父类中的Java方法返回子类的对象? 我想在不使用其他接口和方法的情况下实现此功能,并在没有类强制转换,辅助参数等的情况下使用此功能。 更新: 抱歉,我不太清楚。 我想实现方法链,但是父类的方法存在问题:调用父类方法时,我无法访问子类方法… 我想我已经提出了我的想法的核心。 因此,方法应返回类的对象。 问题答案: 如果您只是在寻找针

  • 假设我在Java中有一个类Animal和3个子类。结构如下所示 我想在breed类中创建另一个对象,但我想创建同一个子类的对象,方法breed()就是从这个子类执行的。例如,如果执行了,我想在那里创建一个新的Frog对象(因为summing Frog是一个Frog对象),如果执行了,我想创建一个新的bear对象,等等。 有没有办法在动物类中处理,或者我必须在每个子类中重写方法?

  • 在我们的YouTrack项目中,所有问题在历史上对“所有用户”都是可见的,这也是随YouTrack附带的同名组。 现在我们正在添加具有受限权限的新用户,他们应该只能看到问题的一小部分。他们应该开始看不到任何问题,然后有选择地让他们看到单个问题(旧问题和新问题)。 我尝试了不同的方法来实现这一点,但没有成功。 1)如果我为他们创建了一个组“受限组”--那么我可以授予这个组查看问题的权限。然后他们可以

  • 假设我有一段代码,可以创建一个具有给定名称的苹果实例 这条线可以被许多玩家调用,每个玩家都有一个Apple类的实例,在这个实例中,名称有点像ID 现在假设在Apple类中有一个ArrayList,它存储每个玩家的朋友 还有一个getter/setter用于更新和检索朋友,所以如果一个特定的玩家键入一个命令 /addfriend将一个朋友添加到他的特定实例数组列表中,我将如何做到这一点? 示例,更新