java–Dagger:POJO中的场注入

java–Dagger:POJO中的场注入,第1张

概述我从未尝试过Guide或其他DI库,但尝试使用DaggerfromsquareforAndroid应用程序.它适用于Frgements,但不适用于POJO.userguide假设有关DI的一些知识,因为它没有更详细地解释.我该怎么做才能将restAdapater注入我的POJO.如果我使用相同的代码进行字段注入,它可以在Fragment中使

我从未尝试过GuIDe或其他DI库,但尝试使用Dagger from square for Android应用程序.它适用于Frgements,但不适用于POJO. user guide假设有关DI的一些知识,因为它没有更详细地解释.我该怎么做才能将restAdapater注入我的POJO.如果我使用相同的代码进行字段注入,它可以在Fragment中使用.

public class MyApplication extends Application {    private ObjectGraph objectGraph;    @OverrIDe    public voID onCreate() {        super.onCreate();        objectGraph = ObjectGraph.create(new DIModule(this));    }    public ObjectGraph objectGraph() {        return objectGraph;    }    public voID inject(Object object) {        objectGraph.inject(object);    }    ...    @Module(entryPoints = {     MainActivity.class,      .....,    Auth.class,     RestAdapter.class    })    static class DIModule {@ProvIDes        @Singleton        public RestAdapter provIDeRestAdapter() {            return new RestAdapter.Builder().setServer(                    new Server(Const.BASE_URL)).build();        }    }}

// POJO

public class Auth {    @Inject    RestAdapter restAdapater;    String Username;    String Password;    public String authenticate() {     ...     API API = restAdapater.create(..)  // **restAdapater is null**     }}

所有碎片都来自下面,DI工作正常.在最近的talk by Eric burke中,他解释说这是必要的,因为AndroID构造了对象.

public class BaseFragment extends Fragment {    @OverrIDe    public voID onCreate(Bundle state) {        super.onCreate(state);        ((MyApplication) getActivity()                .getApplication())                .inject(this);    }}

解决方法:

如果您自己创建一个Auth实例,那么Dagger就不会知道这个实例,也无法为您注入依赖项.

由于您已经在Module entryPoints中声明了Auth.class,因此您只需要向ObjectGraph询问Auth实例:

Auth auth = objectGraph.get(Auth.class);

然后Dagger知道提供Auth实例需要什么,即将它注入RestAdapter.

总结

以上是内存溢出为你收集整理的java – Dagger:POJO中的场注入全部内容,希望文章能够帮你解决java – Dagger:POJO中的场注入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1113030.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存