It’s a bit of a hack, but you can actually make them protected if you want. Protected members aren’t viewable from other Kotlin classes in the package, but they are viewable from Java classes such as the generated Dagger code. You will get a warning though because the linter thinks you can make these members private, but you actually can’t since Dagger is using them.