Если удалить @Named, все работает. Но мне нужно Named
Module
@Module
public class ServerServiceModule {
ServerService mService;
public ServerServiceModule(ServerService service) {
this.mService = service;
}
@Provides
AddLogViewModel getAddLogViewModel() {
return new AddLogViewModel(mService.getApplication());
}
@ElementsIntoSet
@Named("area")
@Provides
Set<String> getDebugArea() {
return new HashSet<>(Arrays.asList(mService.getResources().getStringArray(R.array.debugArea)));
}
@ElementsIntoSet
@Named("type")
@Provides
Set<String> getDebugType() {
return new HashSet<>(Arrays.asList(mService.getResources().getStringArray(R.array.debugType)));
}
Activity
public class ServerService extends LifecycleService {
@Inject @Named("area") Set<String> mDebugArea;
// @Inject @Named("type") Set<String> mDebugType;
@Inject AddLogViewModel mViewModel;
@Override
public void onCreate() {
DaggerServerServiceComponent
.builder()
.serverServiceModule(new ServerServiceModule(this))
.build().stringsDebug();
//code..
super.onCreate();
}
Component
@Component(modules = ServerServiceModule.class)
public interface ServerServiceComponent {
Set<String> stringsDebug();
}
Crash
Проблема решена так: @Named("...") является ключом-идентификатором для @Inject Но, как оказалось, Если у меня 2 метода возвращают одинаковый тип, необходимо 1 метод пометить маркером @Named, а второй НЕ НАДО!
Соответственно, если 4 одинаковых метода, 3 помечаем, 1 оставляем без аннотации.
@ElementsIntoSet
@Provides
@Named(AREA_TAG)
Set<String> getDebugArea() {
return new HashSet<>(Arrays.asList(mService.getResources().getStringArray(R.array.debugArea)));
}
@ElementsIntoSet
@Provides
Set<String> getDebugType() {
return new HashSet<>(Arrays.asList(mService.getResources().getStringArray(R.array.debugType)));
}
А еще
@Component(modules = ServerServiceModule.class)
public interface ServerServiceComponent {
void injects(ServerService service);
Set<String> stringsDebug();
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня назрел такой вопрос, как получить нужное время по дате в миллисекундахВремя которое сейчас можно получить просто введя System