我的Android应用包含一些活动所使用的功能。 这一刻看起来像是:
MainActivity extends Activity {
...
public static int someFunction(int arg1) {
return arg1 * arg1;
}
}
从其他活动中,它会调用MainActivity.someFunction(arg1)
。工作正确,但看起来很难看。我认为Basic"" Module" (所有成员都是静态的,只有静态构造函数可用,默认情况下,没有模块名称的成员调用)更适合它,因为允许将应用程序逻辑划分为" view"和"引擎"。据我所知,Java并没有像这样的结构:
module FN {
public int someFunction(int arg1) {
return arg1 * arg1;
}
}
如果存在,请建议我。
答案 0 :(得分:1)
您可以使用静态导入来获得与Basics模块类似的用法。如此处所指定:https://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html
静态导入构造允许对静态成员进行非限定访问,而不从包含静态成员的类型继承。相反,程序会单独导入成员:
import static java.lang.Math.PI;
或集体:
import static java.lang.Math.*;
导入静态成员后,可以无限制地使用它们:
double r = cos(PI * theta);
答案 1 :(得分:0)
你可以做类似于工具箱的事情。
public class Toolbox {
public int myFunction(int arg1) {
return arg1 * arg1;
}
}
然后在课堂上实现它:
public class MyClass {
private Toolbox t = new Toolbox();
public void doSomething(int arg1, int arg2) {
int val = t.myFunction(arg1) + t.myFunction(arg2);
}
}
Ofcource你可以将方法设为静态,但是你必须调用Toolbox.myFunction
。与基本模块相比,这可能是冗长的。