Reputation: 105
I am creating an instance of Predicate using a provider.
@Provides
@Singleton
@Named("RecordFilters")
public Predicate<ImmutablePair<AbstractRecord, StreamRecord>> getAllFilters() {
BackfillDataFilter backfillDataFilter = new BackfillDataFilter();
DummyUpdateFilter dummyUpdateFilter = new DummyUpdateFilter();
return input -> dummyUpdateFilter.test(input) && backfillDataFilter.test(input);
}
When i am trying to get its instance using injector.getInstance(Predicate.class)
or injector.getInstance(Key.get(Predicate.class, Names.Named("RecordFilters"))
I am getting an exception.
com.google.inject.ConfigurationException: Guice configuration errors:
No implementation for java.util.function.Predicate was bound.
while locating java.util.function.Predicate
Please suggest.
Upvotes: 1
Views: 1057
Reputation: 2276
Try as described in this answer:
injector.getInstance(Key.get(new TypeLiteral<Predicate<ImmutablePair<AbstractRecord, StreamRecord>>>(){})
Upvotes: 2