Java 从软件包中调用android函数;图书馆;
我有几个android应用程序,其中大约80%的代码是相同的,所以我把它放在一个包“库”中。Eclipse似乎将其称为库,尽管它是一个包,而不像我需要实例化的类。用于设置内容的唯一位(即查找表)与包是分开的。这工作正常,我可以调用包函数。有没有退路。在我的每个应用程序中,我希望有一个函数(ie foo())在每个应用程序中执行不同的操作。我希望能够从包中的函数调用foo()。将所有内容都视为一个库,甚至是您的主要应用程序 那么我觉得你现在的情况是这样的,Java 从软件包中调用android函数;图书馆;,java,android,Java,Android,我有几个android应用程序,其中大约80%的代码是相同的,所以我把它放在一个包“库”中。Eclipse似乎将其称为库,尽管它是一个包,而不像我需要实例化的类。用于设置内容的唯一位(即查找表)与包是分开的。这工作正常,我可以调用包函数。有没有退路。在我的每个应用程序中,我希望有一个函数(ie foo())在每个应用程序中执行不同的操作。我希望能够从包中的函数调用foo()。将所有内容都视为一个库,甚至是您的主要应用程序 那么我觉得你现在的情况是这样的, common lib app1,需要c
common lib
,需要app1
common lib
,需要app2
common lib
,需要app3
common lib
公共库
引用app1/2/3
中的代码?这是不可能的,但也许你可以通过使用
依赖注入
在common lib
中创建一个接口,定义需要调用的操作。然后在app1/2/3
中创建实现该接口的类。最后,让app1/2/3
将该接口版本的实例传递给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
就可以调用masterofceraments.introduct(newstudentjohn())
,而app1
就可以调用masterofceraments.introduct(newstudentmary())
,而公共库将为每个人做不同的事情
附加说明
我不知道您的具体情况,但另一件可能有用的事情是创建另一个更“普通”的库,如:
其他库
公共库
,需要其他库
app1
,需要common lib
app2
,需要common lib
app3
,需要common lib