gpt4 book ai didi

java - 从包 "library"调用 android 函数

转载 作者:行者123 更新时间:2023-11-30 02:41:02 24 4
gpt4 key购买 nike

我有几个 android 应用程序,其中大约 80% 的代码是相同的,所以我把它放在一个包“库”中。 Eclipse 似乎将其称为库,尽管它是一个包,而不像我需要实例化的类。设置事物的唯一位(即查找表)与包分开。这很好用,我可以调用包函数。有没有办法倒退。在我的每个应用程序中,我都希望有一个函数(即 foo() )在每个应用程序中执行不同的操作。我希望能够从包中的函数调用 foo()。

最佳答案

将一切都视为一个库,甚至是您的主要应用程序。

那我觉得你目前的情况是这样的:

  • 公共(public)库
  • app1,需要common-lib
  • app2,需要common-lib
  • app3,需要common-lib

你现在想要 common-lib 引用 app1/2/3 中的代码?这是不可能的,但也许你可以使用 dependency injection 来完成。 .

依赖注入(inject)

common-lib 中创建一个接口(interface),定义您需要调用的操作。然后在 app1/2/3 中创建实现该接口(interface)的类。最后,让 app1/2/3 将其接口(interface)版本的实例传递给 common-lib,以便它可以使用它。

common-lib 中:

interface Named {
void getName();
}

class MasterOfCeremonies {
static void introduce(Named guest) {
System.out.println("Please welcome " + guest.getName());
}
}

app1 中:

public StudentJohn implements Named {
void getName() {
return "John";
}
}

app2 中:

public StudentMary implements Named {
void getName() {
return "Mary";
}
}

这样,app1 可以调用 MasterOfCeremonies.introduce(new StudentJohn()),然后 app1 可以调用 MasterOfCeremonies .introduce(new StudentMary())common-lib 将为它们中的每一个做不同的事情。

补充说明

我不知道你的确切情况,但另一件可能有用的事情是制作另一个“更常见”的库,就像这样:

  • 其他库
  • common-lib,需要other-lib
  • app1,需要common-lib
  • app2,需要common-lib
  • app3,需要common-lib

关于java - 从包 "library"调用 android 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25756478/

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