yole
05/31/2016, 7:46 AMdmitry.petrov
05/31/2016, 7:47 AMaamit01
05/31/2016, 7:47 AMaamit01
05/31/2016, 7:47 AMdmitry.petrov
05/31/2016, 7:47 AMartem_zin
05/31/2016, 7:48 AMInjecting via field is a bad smell@dmnk_89: that’s arguable
yole
05/31/2016, 7:50 AMdmnk_89
05/31/2016, 7:53 AMartem_zin
05/31/2016, 8:02 AMclass Presenter(private val authService: AuthService, private val dataService: DataService, private val ioScheduler: Scheduler, private val timeScheduler: Scheduler, private val etc: Etc) {
}
vs
class Presenter(private val graph: ObjectGraph) {
@Inject
lateinit var authService: AuthService
@Inject
lateinit var dataService: DataService
@field:[Inject IoScheduler]
lateinit var ioScheduler: Scheduler
@field:[Inject TimeScheduler]
lateinit var timeScheduler: Scheduler
@Inject
lateinit var etc: Etc
init {
graph.inject(this)
}
}
artem_zin
05/31/2016, 8:03 AMuhe
05/31/2016, 8:09 AMclass Presenter(
private val authService: AuthService,
private val dataService: DataService,
private val ioScheduler: Scheduler,
private val timeScheduler: Scheduler,
private val etc: Etc) {
}
dmnk_89
05/31/2016, 8:11 AMclass Presenter @Autowired constructor(
private val authService: AuthService,
private val dataService: DataService,
@Qualifier("ioScheduler") private val ioScheduler: Scheduler,
@Qualifier("timeScheduler") private val timeScheduler: Scheduler,
private val etc: Etc) {
}
artem_zin
05/31/2016, 8:12 AMsilur
05/31/2016, 8:40 AMkonsoletyper
05/31/2016, 8:42 AMkonsoletyper
05/31/2016, 8:42 AMsilur
05/31/2016, 8:42 AMdmitry.petrov
05/31/2016, 8:43 AMdmitry.petrov
05/31/2016, 8:43 AMdmitry.petrov
05/31/2016, 8:45 AMsilur
05/31/2016, 8:47 AMdmitry.petrov
05/31/2016, 8:48 AMdmitry.petrov
05/31/2016, 8:48 AMsilur
05/31/2016, 8:49 AMaamit01
05/31/2016, 8:49 AMyole
05/31/2016, 8:50 AMdmitry.petrov
05/31/2016, 8:52 AMfoo
with default parameters, kotlinc generates a synthetic foo$default
method with additional "mask" parameter.
See also: https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#overloads-generationsilur
05/31/2016, 8:55 AM@NotNull
or @Nullable
both will benchmark equallysilur
05/31/2016, 8:55 AMkonsoletyper
05/31/2016, 8:56 AM