대거를 사용하여 클래스에 종속성을 주입하는 가장 좋은 방법은 무엇입니까? 특히 대거와 함께 활동과 같은 0 인수 생성자 클래스? Dagger 2가 상황을 개선 할 수 있습니까?대거와 Kotlin 사용
미리 감사드립니다.
대거를 사용하여 클래스에 종속성을 주입하는 가장 좋은 방법은 무엇입니까? 특히 대거와 함께 활동과 같은 0 인수 생성자 클래스? Dagger 2가 상황을 개선 할 수 있습니까?대거와 Kotlin 사용
미리 감사드립니다.
& 2) 및 기타 프레임 워크.
lateinit 속성입니다. 문서에서 발췌 : 간단히 말해서
class Example {
@Inject
lateinit var bar: Bar
}
, 바에는 초기화가 없습니다 만, null 이외의 형식으로 선언됩니다. 초기화 전에 읽으려고하면 예외가 발생합니다.
그렇지 않으면 Dagger를 사용하여 초기화되면 일반 속성으로 사용할 수 있습니다.
모든 내용은 language doc에서 잘 설명되어 있으며 여기에서 M13 버전의 blog post relative을 확인할 수도 있습니다.
대거는 내가 알고있는 한 Kotlin에서 아직 지원되지 않는 주석 처리를 필요로합니다. 그러나 그들은 말한다, 그것은 계획되어있다. 그리고 Dagger 종속성을 사용하여 Java 클래스를 확장하거나 반성 기반 주입 프레임 워크를 사용할 수도 있습니다. - Guice, Roboguice
주석 처리가 지원됩니다. 문제는 생성 된 코드의 '$'기호입니다. –
@EugenMartynov 당신은 그것을 관리 할 수 있었습니까? Dagger 1 및 기타 라이브러리, 주석 처리에 의존합니다. – naixx
잠시 동안 내 대답을 업데이트하지 않고 구식이되었습니다. 또한 M13/M14에서 작동하는 @Ben의 새로운 대답을 발견했습니다.
내가 관심있는 모든 사람을 내 템플릿 프로젝트에 리디렉션하면 최신 Kotlin 및 Dagger 2 버전으로 최신 상태를 유지하려고하는 것이 가장 좋습니다. Kotlin + Dagger 2 sample
I 등 다수의 주석을 포함한 객체를 삽입하는 방법이 설명하고 코 틀린 M13 방출하기 때문에, 새로운 속성 특히 단검과 같은 지지 의존성 주입 (하기 위해 추가 된내가 볼 수있는 샘플 프로젝트가 있습니까? –
@cypressious 템플릿 프로젝트를 만들었습니다. https://github.com/damianpetla/kotlin-dagger-example –
kotlin에서 Int, Long과 같은 기본 유형을 lateinit하는 방법 –