【问题标题】:extend library class from non activity class从非活动类扩展库类
【发布时间】:2016-05-10 08:56:51
【问题描述】:

我有一个 Main 活动和一个名为 Indicator 的子类。然后我有一个类 SessionIndicator 的库项目,我想用主项目中的指标类扩展它。

com.example
|_app
|  |_MainActivity
|  |_Indicator class
|
|_library project
   |_SessionIndicator class

代码(主要活动,子类):

package com.example.main;
public abstract class Indicator{}

代码库项目:

package com.example.lib;
public SessionIndicator extends Indicator{}

在库项目中找不到指标类。

我怎样才能让它工作? 如何将指标类导入库项目?

【问题讨论】:

  • 我相信你的应用依赖于你的库,而不是相反。因此您可以从应用程序访问库类,反之亦然
  • 我认为这是不可能的。对于你想要的,你必须在你的库项目中创建对你的主项目的依赖,这将创建循环依赖。一种解决方案是将库的源代码导入主项目。
  • 该库包含主项目中面板的指标,可以动态添加。在主项目指标类中,我有指标的获取器和设置器,所以在库类中,我想基于此类构建自定义指标,或者使用库的方法是否错误?我想像模块一样使用它。
  • @urgas9 迄今为止最好的答案,你可以把它写成答案然后我可以投票,我会尝试找到另一个解决方案。也许就像你建议的那样。谢谢

标签: java android class extends


【解决方案1】:

根据我的评论: 我不认为这是可能的。对于你想要的,你必须在你的库项目中创建对你的主项目的依赖,这将创建循环依赖。一种解决方案是将库的源代码导入主项目。

如果我正确理解您的项目结构,您只能从库中将类导入主项目,反之则不行。我相信您可以避免这种情况,上面描述了一种方法(丑陋但快速修复),另一种方法是从您的主项目生成另一个库 - 您自己的 - 然后将其作为依赖项/库导入。我不知道您使用的是哪种技术。但要注意构建工具(Gradle、Maven...)中的循环依赖关系

【讨论】:

  • 如果我将指标类放入库项目并创建一个新的独立库项目,我可以使用项目库中的指标类扩展其类吗?
  • 我想你可以。关键是您不能从库项目中的主项目扩展类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多