相当于Basic的模块

时间:2018-05-06 12:22:59

标签: java android

我的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;
 }
}

如果存在,请建议我。

2 个答案:

答案 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。与基本模块相比,这可能是冗长的。