You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java的Fragment或其他Activity中获取Application类的方法与变量?

如何在Java的Fragment或其他Activity中获取Application类的方法与变量?

嘿,这个问题其实不难解决,咱们先理清楚你贴的Kotlin代码的逻辑:它是把当前Fragment关联的Activity的Application实例强转成自定义的AppTest类,然后获取里面的trustedTimeClient变量。Java里的思路完全一致,只是语法上有小区别,我给你分步讲清楚:

第一步:确保自定义Application类配置正确

首先得确认你的AppTest是继承自Android的Application类,并且已经在AndroidManifest.xml里注册好了(在<application>标签的android:name属性指定这个类)。另外Java不像Kotlin会自动生成getter,所以要给私有变量trustedTimeClient写好公开的getter方法:

public class AppTest extends Application {
    private TrustedTimeClient trustedTimeClient;

    @Override
    public void onCreate() {
        super.onCreate();
        // 记得在这里初始化trustedTimeClient实例
        trustedTimeClient = new TrustedTimeClient();
    }

    // 提供公开的getter方法供外部调用
    public TrustedTimeClient getTrustedTimeClient() {
        return trustedTimeClient;
    }
}

第二步:在Fragment里获取变量/方法

和Kotlin逻辑类似,先拿到Fragment绑定的Activity(一定要判空,避免空指针),再强转成AppTest,最后调用getter方法:

private TrustedTimeClient getTrustedTimeClient() {
    // 先判断Activity是否存在,防止空指针异常
    if (getActivity() == null) {
        return null; // 你也可以根据业务需求抛出异常或者返回默认实例
    }
    // 强转Application为自定义的AppTest类
    AppTest app = (AppTest) getActivity().getApplication();
    return app.getTrustedTimeClient();
}

第三步:在Activity里获取变量/方法

如果是在Activity里的话更简单,直接调用getApplication()方法再强转就行:

// 在Activity的代码块里直接这么写
AppTest app = (AppTest) getApplication();
TrustedTimeClient trustedTimeClient = app.getTrustedTimeClient();

这样就能实现和Kotlin代码一样的效果啦~

备注:内容来源于stack exchange,提问作者Me Compu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:04:50