Я не думаю, что это возможно, даже гипотетически.
Кинжал не может сказать, что существует только одна реализация, и единственный способ, которым это могло бы быть, - это поиск каждого класса в (компиляции)classpath, чтобы попытаться найти все возможные варианты реализации.В лучшем случае это было бы медленно, но Java позволяет загружать классы из пользовательских загрузчиков классов, поэтому вам никогда не гарантируется получение полного списка доступных классов .Даже если бы вы утверждали, что Dagger должен просто соответствовать первому соответствующему присваиваемому типу, который он видит (потому что вы знаете, что он только один), у Dagger может не быть способа определить, где найти этот тип реализации.
В конечном итоге будет трудно улучшить однострочный оператор @Binds
, который идентифицирует полностью определенный класс ключа привязки (your.package.name.LoginService) и цели (your.package.name.LoginServiceImpl).