草庐IT

constructor-injection

全部标签

android - Dagger 2 : Unable to inject dependencies in WorkManager

所以据我了解,Dagger还不支持在Worker中注入(inject)。但是正如人们所建议的那样,有一些解决方法。我已经尝试按照在线示例通过多种方式来做到这一点,但它们都不适合我。当我不尝试向Worker类中注入(inject)任何东西时,代码工作正常,只是我不能做我想做的事,因为我需要访问一些DAO和服务。如果我在这些依赖项上使用@Inject,则依赖项要么为null,要么worker永远不会启动,即调试器甚至不会进入Worker类。例如,我尝试这样做:@Component(modules={Module.class})publicinterfaceComponent{voidinj

安卓 Dagger 2 : Inject versus Provides

我对AndroidDagger2和@Inject和@Provide注释的使用有疑问。给出以下两个简化示例:publicclassA{Stringmsg;publicA(Stringmsg){this.msg=msg;}}publicclassB{publicAa;publicB(Aa){this.a=a;}}@ModulepublicclassAModule{@ProvidesAprovidesA(){returnnewA("blah");}@ProvidesBProvidesB(Aa){returnnewB(a);}}该示例非常简单,我的AModule中有两个方法,带有@Provid

android - 使用 Guice 将依赖项注入(inject) Android Activity 的构造函数

有人知道使用Guice将依赖项注入(inject)Android中Activity的构造函数的方法吗?看起来Activity通常只有默认构造函数,以便平台可以轻松创建新实例。虽然使用单例来引用注入(inject)器并获取依赖项很容易,但这种方式不太干净,并且引入了一些静态。有什么建议吗? 最佳答案 我不知道我怎么会错过这个!https://github.com/roboguice/roboguice 关于android-使用Guice将依赖项注入(inject)AndroidActivi

android - FragmentPagerAdapter 的麻烦和困境 : Constructor Undefined

编辑:我修改了一些代码以尝试克服错误(但现在应用程序在启动时崩溃)。首先,我的类现在扩展了FragmentActivity,这样我就可以访问方法getSupportFragmentManager();。然后,在创建时,我更改了构造函数:mTabsAdapter=newTabsAdapter(this.getSupportFragmentManager(),this,mViewPager);从那里开始,在我的子类中,我更改了代码以反射(reflect)这一点:publicTabsAdapter(FragmentManagerfm,Activityactivity,ViewPagerpag

android - android 应用程序开头的 java.io.FileNotFoundException : com/google/inject/internal/util/$Finalizer. 类

我正在开发安卓倒计时应用。在应用程序中,您可以根据需要添加或删除任意数量的倒计时。所有倒计时都保存在一个ArrayList中。我不能只将它们保存在数据库或共享首选项中,因为即使您离开应用程序,倒计时也必须继续运行。我正在使用roboguice2.0和guice-3.0-no_aop.jar来处理我的依赖项注入(inject)。大多数时候一切正常,但有时如果我启动应用程序,我只会收到以下警告,并且所有变量(如我保存倒计时的Arraylist)再次为空。05-2113:07:33.260:W/nalizableReferenceQueue(14417):CouldnotloadFinali

c++ - filesystem::canonical 能否用于防止传递给 fstream 的文件路径的文件路径注入(inject)

我有一个公共(public)文件夹pub,里面有子文件夹和文件。用户现在给我一个相对文件路径,我执行一些映射,然后使用fstream读取文件并将其返回给用户。现在的问题是,如果用户给我一条路径,例如../fileXY.txt或其他考虑路径遍历或其他类型的文件路径注入(inject)的奇特内容。fstream只是接受它并读取我的公共(public)pub文件夹之外的潜在文件,或者更糟的是给他们一个我系统上所有文件的列表等......。在重新发明轮子之前,我在文件系统库中搜索我看到有这个std::filesystem::canonical函数并且有很多关于范式的讨论。我在这里有一个一般性问

c++ - 列出聚合的初始化 : when can it invoke copy constructor?

考虑以下代码:structA{intx;};intmain(){Aa;Ab{a};}这个程序在C++11标准下是否良构?在我的N3797拷贝中它说8.5.4Listinitialization[dcl.init.list]3:List-initializationofanobjectorreferenceoftypeTisdefinedasfollows:-IfTisanaggregate,aggregateinitializationisperformed(8.5.1).-Otherwise,ifTisaspecializationofstd::initializer_list,..

c++ - 如何在 C/C++ 中将非 ASCII 字符注入(inject)字符串文字

我有一个读取字符数组的程序。我需要内存中字符串的值等于十六进制0x01020304,它们都是非ASCII字符。所以问题是,如何在运行时将非ASCII字符传递给字符串文字变量? 最佳答案 使用转义序列。确保按正确顺序放置字符。"\x01\x02\x03\x04"编辑:如果您需要将序列放入现有的char数组中,只需将其赋值即可。chars[4];//...later...s[0]=0x01;s[1]=0x02;s[2]=0x03;s[3]=0x04;不要尝试通过将s转换为(int32_t*)来分配数字,char数组没有正确对齐。

c++ - 使用 unique_ptr 进行依赖注入(inject)以模拟

我有一个使用Bar类的Foo类。Bar仅在Foo中使用,而Foo正在管理Bar,因此我使用unique_ptr(不是引用,因为我不需要Foo之外的Bar):usingnamespacestd;structIBar{virtual~IBar()=default;virtualvoidDoSth()=0;};structBar:publicIBar{voidDoSth()override{coutbar):bar_(std::move(bar)){}voidDoIt(){bar_->DoSth();}private:unique_ptrbar_;};目前一切顺利,一切正常。但是,当我想对代

c++ - has_trivial_default_constructor 是如何工作的?

谁能给我解释一下has_trivial_default_constructor是如何工作的?我试图在提升实现中找到它,但不幸的是宏太多,我迷路了......如何使用模板检测C++中的trivial_default_constructor?我需要一个C++03而非11的示例。#include#includestructA{A(){}inta;//std::vectorb;};intmain(intargc,char*argv[]){structB{std::vectorb;};boolresult=boost::has_trivial_default_constructor::value