The following is illegal Java ... so I cannot bind the following in my AppModule:
binder.bind(ValueEncoder<Movie>.class, GenericValueEncoder<Movie>.class); binder.bind(ValueEncoder<Video>.class, GenericValueEncoder<Video>.class); binder.bind(ValueEncoder<Book>.class, GenericValueEncoder<Book>.class); binder.bind(ValueEncoder<Song>.class, GenericValueEncoder<Song>.class); Instead, I put the following into my AppModule: binder.bind(ValueEncoder.class, GenericValueEncoder.class); Can I safely @Inject this encoder into multiple/different pages? class MoviePage { @Inject private ValueEncoder<Movie> encoder; class VideoPage { @Inject private ValueEncoder<Video> encoder; If this is safe, although I only bound one instance, does it create a new instance of the service for each Generic<Parameter> type? What should happen with something like this: binder.bind(AbstractSelectModel.class, GenericSelectModel.class); when there is no "left-hand" Generic to infer the Generic Parameter from: class VideoPage { @Inject private AbstractSelectModel model; -Luther