๊ฐ์ฒด์ ์์ฑ์ ํด๋์ค ๋ด๋ถ์์ ํ๋ ๊ฒ์ด ์๋, ํด๋์ค ์ธ๋ถ์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์ฃผ์ ์์ผ์ฃผ๋ ๋์์ธ ํจํด์ ๋งํ๋ค. ์ฌ๋ฌ ์ปดํฌ๋ํธ๊ฐ ์์กด์ฑ์ด ๊ฐํ ์๋๋ก์ด๋์์ ํด๋์ค ๊ฐ ์์กด์ฑ์ ๋ฎ์ถ๊ธฐ ์ํด ํ์ํ๋ค.
์๋ ๊ฒฝ์ฐ๋ A ํด๋์ค ๋ด๋ถ์์ B ํด๋์ค๊ฐ ์์ฑ, ์ฌ์ฉ๋๋ฏ๋ก ์์กด๊ด๊ณ๋ผ ๋ณผ ์ ์๋ค.
class B{
val id = "test"
}
class A {
val data = B() //์์กด๊ด๊ณ
}
print(A().data.id)
ํ์ง๋ง ์ด ๊ฒฝ์ฐ๋ A ํด๋์ค์ ๋ด๋ถ์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋, ์ธ๋ถ์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์ฃผ์ ์ํค๋ ๊ฒ์ด๋ค.
class B {
val id = "test"
}
class A(b: B) {
val data = b
}
val b = B() //์ธ๋ถ์์ ๊ฐ์ฒด ์์ฑ
print(A(b).data.id) //์ธ๋ถ์์ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ์ฃผ์
๊ฐ์ฒด๋ฅผ ํด๋์ค ์ธ๋ถ์์ ์ฃผ์ ํ๊ธฐ ์ํด์๋ ๊ฐ์ฒด์ ์๋ช ์ฃผ๊ธฐ์ ๋ํ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค. ์ด๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
Hilt๋ฅผ ์ฌ์ฉํ๋ ์ฑ์ Application Class์ @HiltAndroidApp ์ ์ถ๊ฐํด์ผํ๋ค. ์ด๋ ์์กด์ฑ ์ฃผ์ ์ ์์ํ๊ฒ ๋ค๋ ๊ฒ์ด๋ค.
@HiltAndroidApp
class HiltApplication : Application() {
}
Manifest ํ์ผ์์๋ android name ์์ฑ์ผ๋ก ํด๋น ํด๋์ค ํ์ผ ์ด๋ฆ์ผ๋ก ์ถ๊ฐํด์ค๋ค.
<application
android:name=".di.HiltApplication"