Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public interface View {
- //...
- }
- public abstract class AbstractPresenter<V extends View> {
- @Inject V view;
- //...
- }
- public interface LoginView extends View {
- //...
- }
- public LoginPresenter extends AbstractPresenter<LoginView> {
- //...
- }
- public class LoginViewImpl implements LoginView {
- //...
- }
- @Provides
- LoginView provideLoginView() {
- return new LoginViewImpl();
- }
- foo.bar.AbstractPresenter$$InjectAdapter.java:[21,31] cannot find symbol
- symbol: class V
- location: class foo.bar.AbstractPresenter$$InjectAdapter
- Caused by: java.lang.IllegalArgumentException: V
- at dagger.internal.codegen.writer.TypeNames$2.defaultAction(TypeNames.java:39)
- at dagger.internal.codegen.writer.TypeNames$2.defaultAction(TypeNames.java:36)
- at javax.lang.model.util.SimpleTypeVisitor6.visitTypeVariable(SimpleTypeVisitor6.java:179)
- at com.sun.tools.javac.code.Type$TypeVar.accept(Type.java:1052)
- at dagger.internal.codegen.writer.TypeNames.forTypeMirror(TypeNames.java:36)
- at dagger.internal.codegen.MembersInjectorGenerator.write(MembersInjectorGenerator.java:142)
- at dagger.internal.codegen.MembersInjectorGenerator.write(MembersInjectorGenerator.java:61)
- at dagger.internal.codegen.SourceFileGenerator.generate(SourceFileGenerator.java:53)
- at dagger.internal.codegen.InjectBindingRegistry.generateSourcesForRequiredBindings(InjectBindingRegistry.java:101)
- at dagger.internal.codegen.ComponentProcessor.process(ComponentProcessor.java:149)
- @Component
- public interface PresenterComponent {
- <V extends View> void inject(AbstractPresenter<V> presenter);
- }
- @Module
- public class LoginModule {
- @Provides LoginView provideLoginView() {
- return new LoginViewImpl();
- }
- }
- @Component(modules = LoginModule.class)
- public interface LoginComponent {
- void inject(LoginPresenter presenter);
- }
- public LoginPresenter extends AbstractPresenter<LoginView> {
- //...
- @Inject LoginPresenter(LoginView view) {
- super(view);
- //...
- }
- }
- bind(new LoginPresenter<LoginViewImpl>(){});
Add Comment
Please, Sign In to add comment