【发布时间】:2014-02-11 13:19:38
【问题描述】:
我正在开发一个库,它需要来自项目的一些配置信息,其中包括这个库。我在想的是在我的库中有一些抽象方法并强制应用程序实现这些方法。 我正在寻找的是:
- 库中的 A 类具有一些 静态抽象方法,例如 有一个名为 getURL() 的方法;
- A 类 B 实现这些静态 实际应用中的方法和实现方法 getURL() from A类。
- 在我的库中,我调用了 A.getURL(),它应该调用方法 B 类的实现,它扩展了 A 类,应该返回我的 url。
但是Java中的抽象方法不能是静态的。是否有一些解决方法可以实现相同的功能。
【问题讨论】:
-
为什么它需要是静态的?如果你的库中有一个非静态类,你可以将你的“配置”作为参数传递给构造函数/工厂方法。
-
实际上,应用程序不会创建任何类库的任何对象。库有 Main 类,它需要来自应用程序的一些信息才能开始其实际工作。
-
当应用程序启动时,它只会运行 1 个主要方法。这种方法应该被认为只是程序的“入口点”,它本身不应该做太多的功能性工作。如果您有两个应用程序正在运行,那么它就不再是一个真正的库了。我建议您更改库实现以使用对象。也许您可以提供更多信息来帮助我们改进这些答案。
-
好吧,让我解释一下。为简单起见,我使用的是主类。其实这是一个安卓项目。库有一个特定的菜单和 Web 服务组件。 lib 完成的所有工作都是动态的。 Lib 需要来自包含它的项目的菜单名称和相应的类名称。但出于安全考虑,它不会向使用它的应用程序披露控制流或其任何类 sn-p。我想在两个应用程序之间添加某种接口来共享配置等。
标签: java android static parent-child abstract-class