简体   繁体   中英

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.

按照此答案中的说明进行尝试:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM