Avinash Kumar
Avinash Kumar

Reputation: 105

Guice injector.getInstance throwing Configuration exception

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

Answers (1)

Dmitry Gorkovets
Dmitry Gorkovets

Reputation: 2276

Try as described in this answer:

injector.getInstance(Key.get(new TypeLiteral<Predicate<ImmutablePair<AbstractRecord, StreamRecord>>>(){})

Upvotes: 2

Related Questions