有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java类型转换安卓活动

我正在尝试创建一组方法,可供我的应用程序中的不同活动使用。因此我决定将这些方法放入一个类Util.java,如下所示:

class Util{

    MainActivity activity;

    //constructor
    public Util(MainActivity activity){
        this.activity=activity;
    }

    //other methods are here
}

现在,上面的代码在从MainActivity创建Util实例时运行良好。如果我想从另一个活动创建Util的实例,比如NewActivity,我必须添加一个新的构造函数,它接受NewActivity作为参数

问题: 有没有一种方法可以避免Util类中的多个构造函数,如下所示

class Util{

    Activity activity; //can hold instance of any activity

    //constructor
    public Util(activity activity){
        this.activity=activity;
    }

    //other methods are here
}

如果我想访问当前活动的ActionBar(如下所示),上面的代码将不起作用

activity.getSupportActionBar() //would throw an error

简而言之,我试图创建一个变量activity,它可以保存任何活动(MainActivityNewActivity),并允许我完全访问当前分配的活动的成员


共 (1) 个答案

  1. # 1 楼答案

    你可以使用泛型

    public class Util<E extends Activity> {
            E activity;
            public void doSomething(E activity) {
    
            }
        }
    

    访问方式如下:

    Util<MainActivity> util = new Util<>();
    util.doSomething(MainActivity.this);