我已经开始设置匕首2,并面临一个奇怪的问题,看起来像一个bug对我来说。
我有1个主组件和2个子组件,我‘加’在父组件中。我为每个子组件使用不同的作用域
。问题是,我可以很容易地为第一个子组件进行字段注入,但我不能为第二个子组件进行相同的注入。注入的字段保持null
%s。
@Singleton
@Component(modules = { WalletSaverAppModule.class })
public interface MyAppComponent {
TrackingComponent plus(TrackingModule module);
DashboardComponent plus(DashboardModule module);
}
@PerActivity @Subcomponent(modules = { DashboardModule.class })
public interface DashboardComponent {
void inject(MainActivity activity);
}
@PerService @Subcomponent(modules = { TrackingModule.class })
public interface TrackingComponent {
void inject(IntentService context);
}
public class TrackingService extends IntentService {
@Inject CallCase mCallCase;
@Inject CallModelMapper mCallModelMapper;
...
@Override protected void onHandleIntent(Intent intent) {
((MyApp) getApplication()).getAppComponent().plus(new TrackingModule(this)).inject(this);
// ---> here the both fields are null
...
我正在注射的对象:
@Singleton public class CallCase {
private CallRepository mCallRepository;
@Inject public CallCase(final CallRepository userRepository) {
mCallRepository = userRepository;
}
public Observable<Call> execute() {
...
}
}
@Singleton public class CallModelMapper {
@Inject CallModelMapper() {
}
public CallModel transform(@NonNull final Call callEntity) {
...
}
}
这两个对象都具有@singleton
作用域(作为它们的构造函数字段)。会不会是范围冲突?
---更新---
我已经检查了由Dagger2生成的类(DaggerMyAppComponent
),我正在MyApp
中使用它来构建应用程序组件。我发现了第一个和第二个组件实现之间的区别。
private final class DashboardComponentImpl implements DashboardComponent {
private final DashboardModule dashboardModule;
private Provider<DashboardMvp.Presenter> providesPresenterProvider;
private MembersInjector<MainActivity> mainActivityMembersInjector;
private DashboardComponentImpl(DashboardModule dashboardModule) {
this.dashboardModule = Preconditions.checkNotNull(dashboardModule);
initialize();
}
private void initialize() {...}
@Override
public void inject(MainActivity activity) {...}
}
private final class TrackingComponentImpl implements TrackingComponent {
private final TrackingModule trackingModule;
private TrackingComponentImpl(TrackingModule trackingModule) {
this.trackingModule = Preconditions.checkNotNull(trackingModule);
// ---> look, missing call initialize() <---
}
@Override
public void inject(IntentService context) {...}
}
在TrackingComponent中,为什么要注入IntentService。也许改成TrackingService会有帮助
void inject(TrackingService context);
我的应用程序中有以下Dagger2架构: 其中:AppComponent: UserComponent: ActivityComponent: ChatComponent: 首先,如何将不同的注入到类中?要么是应用程序,要么是活动?? 其次,我在编译代码时遇到了一个奇怪的问题,错误是: 错误:(23,10)错误:br.com.animaeducacao.ulife.domain.interacto
:此接口包含此组件所需的所有方法。 现在,问题是,如果我在中执行此调用,则此类不是由Dagger生成的。如果调用相同的行,则由dagger生成de类,不会有任何问题。 我寻找的另一个解决方案是创建一个具有相同结构的其他不同类,并将作为内部对象,结果也是一样。
V1.1.1新增 Comments($table,$post_id,$params=array()) 功能: 生成评论组件 参数: $table:评论对象所在的表,不带表前缀 $post_id:评论对象的id $params:额外参数,类型为数组,目前只支持tpl参数 模板中使用 <!-- 评论文章表里的某个ID为$object_id的文章--> {:Comments("posts",$obje
我正在尝试使用criteriaBuilder和谓词构建一个SQL where子句,以创建一些SQL语句,如: AND或对列表周围的括号对于将它们与不存在分开很重要。这是因为和有优先权我得到的是 我可以构建所有谓词,没有问题,但我不知道如何让它在AND或PAIRES列表中添加括号 AND或OR对的列表是这样构建成1个谓词列表的 子查询是这样添加的 还有地点 每个AND或AND对周围的括号也一样好
问题内容: 我正在尝试通过学习本教程来学习hyperjaxb 。我遵循了所有指示,直到标题部分。这包括以下步骤: 但是什么也没产生。没有目录,也没有。我对整个目录结构进行了关键字搜索,以确认运行后这些资源不存在。我也将目录结构导入到新的Eclipse Maven项目中,并在新的Eclipse Maven项目中进行了尝试,但同样缺少结果。 如何使本教程生成预期的生成文件? 另外,是否有更好的方法从x
我试图使用Flux.create生成异步服务器发送事件。当我的客户端连接时,请求最终超时,并且没有收到任何事件。我硬编码了一个由Flux发送的事件。创建只是为了查看数据流,但客户端仍然没有收到任何数据。 客户端(Angular)代码: 我从来没有看到一个事件来自事件源。最终请求超时,我看到错误:< code > net::ERR _ EMPTY _ RESPONSE 我是使用WebFlux的新手,