1

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.

1 Answers1

2

Try as described in this answer:

injector.getInstance(Key.get(new TypeLiteral<Predicate<ImmutablePair<AbstractRecord, StreamRecord>>>(){})
Community
  • 1
  • 1
Dmitry Gorkovets
  • 2,208
  • 1
  • 10
  • 19