方法全局到项目(Java)

时间:2013-12-30 14:50:28

标签: java android

我要求一个方法对整个Java项目是全局的,但我不确定如何继续。我正在为Android编程,但任何Java项目都是如此。

我希望以下方法可用于项目中的任何类:

public int dpToPx(int dp, Context c) {

    DisplayMetrics displayMetrics = c.getResources().getDisplayMetrics();
    int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));       
    return px;
}

我的想法是把它放在一个自己的类中,但随后出现了关于构造函数使用的问题。什么是最有效的方法呢?

5 个答案:

答案 0 :(得分:3)

这样做的一种方便方法是使用静态方法创建实用程序类。

public class AppUtils {
    public static int dpToPx(int dp, Context c) {
        // your source code.
    }
}


然后可以通过调用AppUtils.dpToPx()

在任何地方访问该方法
public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_activity);

        int px = AppUtils.dpToPx(240, this);
    }
}

答案 1 :(得分:2)

使方法静态是一个选择。如果你想在class1中调用class2,你应该在class2中实例化class1,那么只有你可以调用那个方法

答案 2 :(得分:1)

我会把它放在公共课中,并使这个方法公开和静态。

这样你就可以从任何地方调用它。

答案 3 :(得分:1)

如果可能,类上的公共静态方法是最简单的方法。

如果您需要维护全局应用程序状态,那么首选位置是Application子类。

然后,您可以根据需要使用getApplication()getApplicationContext()来检索它。

答案 4 :(得分:1)

由于该方法必须可用于整个项目,我建议您create a class that is public and put the method inside it。我不太确定你的意思是施工人员的问题。

此外,作为附加提示,您可以package the java file as a jar并且也可以在不同的项目中使用它。

希望它有所帮助。 :)