【问题标题】:How to access util class by classes in different packages in java?如何通过java中不同包中的类访问util类?
【发布时间】:2022-01-15 17:56:54
【问题描述】:

考虑以下包在同一个组件中(多层应用)

  • com.app.feature1
  • com.app.feature2

两者都包含类。假设com.app.feature1 包含类Acom.app.feature2 包含类B。两者都需要相同的代码来完成任务。让我们称它为doSomething() 并将它放在一个名为C 的类中。 如果我将C 类放在一个新包com.app.util 中并将其公开,AB 可以使用doSomething(),但更高组件的类可以使用CdoSomething() 而我不不想那样。下一个修饰符是包私有。 ABC 不在同一个包中。所以他们不能使用CdoSomething()

如何解决?

【问题讨论】:

  • 在您的情况下,类AB 从类C 继承是否有意义?
  • 不,那里只有“愚蠢”的类(Mapper 等)
  • “mapper”怎么是一个愚蠢的类?听起来像是一个非常适合与继承一起使用的类。
  • 它并不完美,但是您可以将C 类的doSomething 公开并在JavaDoc 中写入,它不是公共API 的一部分,不应该使用。跨度>
  • 然后人们仍然会忽略 JavaDoc 并使用它。不过,我不知道Mapper 与我所问的有什么关系。 AB 类不能扩展 C 类有什么原因吗?因为从 OP 告诉我们的内容来看,我没有看到,继承将解决问题而没有其他可能性的缺点。

标签: java package


【解决方案1】:

(对不起,如果我没有正确理解您的问题,但我会尝试提出解决方案)

你可以创建一个抽象类,AB(我们称之为AbstractSomething)继承方法doSomething(),然后另一个包中的类C 可以有一个接受的方法AbstractSomething 并在其中调用 doSomething()

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2013-11-27
  • 2013-07-18
  • 2011-08-23
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 2020-06-28
  • 2010-09-21
相关资源
最近更新 更多