Dagger 2 in Kotlin : Is there a way to do injection for class with default parameterized constructor without using Module?
up vote
0
down vote
favorite
I want to have my Dagger 2 inject the below class and doesn't plan to use @Module
to do so.
So I put @Inejct constructor
as below
class InjectClass @Inject constructor(var txt: String = "Default")
It doesn't work as it complaints
e: [kapt] An exception occurred: java.lang.IllegalStateException: Found multiple
@Inject constructors: [InjectClass(java.lang.String), InjectClass()]
Is there a way to make it work here?
kotlin dagger-2
add a comment |
up vote
0
down vote
favorite
I want to have my Dagger 2 inject the below class and doesn't plan to use @Module
to do so.
So I put @Inejct constructor
as below
class InjectClass @Inject constructor(var txt: String = "Default")
It doesn't work as it complaints
e: [kapt] An exception occurred: java.lang.IllegalStateException: Found multiple
@Inject constructors: [InjectClass(java.lang.String), InjectClass()]
Is there a way to make it work here?
kotlin dagger-2
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I want to have my Dagger 2 inject the below class and doesn't plan to use @Module
to do so.
So I put @Inejct constructor
as below
class InjectClass @Inject constructor(var txt: String = "Default")
It doesn't work as it complaints
e: [kapt] An exception occurred: java.lang.IllegalStateException: Found multiple
@Inject constructors: [InjectClass(java.lang.String), InjectClass()]
Is there a way to make it work here?
kotlin dagger-2
I want to have my Dagger 2 inject the below class and doesn't plan to use @Module
to do so.
So I put @Inejct constructor
as below
class InjectClass @Inject constructor(var txt: String = "Default")
It doesn't work as it complaints
e: [kapt] An exception occurred: java.lang.IllegalStateException: Found multiple
@Inject constructors: [InjectClass(java.lang.String), InjectClass()]
Is there a way to make it work here?
kotlin dagger-2
kotlin dagger-2
asked Nov 11 at 2:29
Elye
8,408547126
8,408547126
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
Instead of using a default value, you could write a secondary constructor instead:
class InjectClass @Inject constructor(var txt: String)
constructor(): this("Default")
Like this you make sure that the default constructor is not annotated with @Inject
and Dagger knows how to create InjectClass
.
Optionally, we could do this
class InjectClass(var txt: String)
@Inject constructor(): this("Default")
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
Instead of using a default value, you could write a secondary constructor instead:
class InjectClass @Inject constructor(var txt: String)
constructor(): this("Default")
Like this you make sure that the default constructor is not annotated with @Inject
and Dagger knows how to create InjectClass
.
Optionally, we could do this
class InjectClass(var txt: String)
@Inject constructor(): this("Default")
add a comment |
up vote
1
down vote
accepted
Instead of using a default value, you could write a secondary constructor instead:
class InjectClass @Inject constructor(var txt: String)
constructor(): this("Default")
Like this you make sure that the default constructor is not annotated with @Inject
and Dagger knows how to create InjectClass
.
Optionally, we could do this
class InjectClass(var txt: String)
@Inject constructor(): this("Default")
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
Instead of using a default value, you could write a secondary constructor instead:
class InjectClass @Inject constructor(var txt: String)
constructor(): this("Default")
Like this you make sure that the default constructor is not annotated with @Inject
and Dagger knows how to create InjectClass
.
Optionally, we could do this
class InjectClass(var txt: String)
@Inject constructor(): this("Default")
Instead of using a default value, you could write a secondary constructor instead:
class InjectClass @Inject constructor(var txt: String)
constructor(): this("Default")
Like this you make sure that the default constructor is not annotated with @Inject
and Dagger knows how to create InjectClass
.
Optionally, we could do this
class InjectClass(var txt: String)
@Inject constructor(): this("Default")
edited Nov 12 at 2:14
Elye
8,408547126
8,408547126
answered Nov 11 at 8:15
tynn
18.8k54374
18.8k54374
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53245340%2fdagger-2-in-kotlin-is-there-a-way-to-do-injection-for-class-with-default-param%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown