0.๐ถ๋ค์ด๊ฐ๋ฉฐ
์คํ๋ง ๊ณต๋ถ๋ฅผ ์์ํ๋ฉฐ ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ๋ง์ฃผ์ณค์ต๋๋ค.
์คํ๋ง ์ปจํ ์ด๋์ ๊ดํ ์ฝ๋์ธ๋ฐ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ์ดํด๋ณด๋ฉด AppConfig.class ๋ผ๋ ์ธ์๋ฅผ ๋๊ฒจ์ฃผ๊ณ ์๋ ๋ชจ์ต์ ๋ณผ ์ ์์์ต๋๋ค.
์ด๋ AppConfig.class๊ฐ ๋ญ์ง..? ๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ ์ฌ๊ณ ๊ณผ์ ์.. ๊ฑฐ์ณ๊ฐ์ต๋๋ค.
- AppConfig.class ๋ผ๊ณ ์ฐ๋ ๊ฑธ ๋ณด๋ AppConfig์ static ๋ณ์์ธ๊ฐ?
- AppConfig๋ ๋ด๊ฐ ๋ง๋ ํด๋์ค์ธ๋ฐ ๊ทธ๋ผ ๋ถ๋ชจ ํด๋์ค์ธ Object ํด๋์ค์ ์ ๋ฐ static ๋ณ์๊ฐ ์์๋๊ฐ?
- Object ํด๋์ค์ ์ ๋ฐ static ๋ณ์๊ฐ ์๋๋ฐ..?
1.Class Literal
๊ด๋ จ๋ ๋ด์ฉ์ ๊ฒ์ํ๋ค๋ณด๋ ์์ ๊ฐ์ ํค์๋๋ฅผ ์ป์ ์ ์์๊ณ , Oracle docs์๋ Class Literal์ ์๋์ ๊ฐ์ด ์ค๋ช ํ๊ณ ์์์ต๋๋ค. ๋ํ Class Literal์ ์์๋ก๋ String.class, Integer.class๊ฐ ์์ต๋๋ค.
A class literal is an expression consisting of the name of a class, interface, array, or primitive type, or the pseudo-type void, followed by a '.' and the token class.
A class literal evaluates to the Class object for the named type (or for void) as defined by the defining class loader of the class of the current instance.
์ ๋ด์ฉ์ ์ดํด๋ณด๋ฉด .class๋ static ๋ณ์๊ฐ์ ๊ฒ์ด ์๋๊ณ ์๋ฐ์ token ์์ ์ ์ ์์ต๋๋ค.
๋ํ, ClassName.class์ ํ์ ์ Class ํด๋์ค๋ผ๊ณ ํ๋๋ฐ์. ์ด์ Class ํด๋์ค๊ฐ ๋ฌด์์ธ์ง ๊ฐ๋จํ ์์๋ณด๊ณ ๊ธ์ ๋ง์น๋๋ก ํ๊ฒ ์ต๋๋ค.
# Class ํด๋์ค
์๋ฐ์ ๋ชจ๋ ํด๋์ค๋ ์ปดํ์ผ ํ class ํ์ผ๋ก ์์ฑ๋ฉ๋๋ค. classํ์ผ์๋ ๋ฉค๋ฒ ๋ณ์๋ ๋ฉ์๋, ์์ฑ์ ๋ฑ๋ฑ ๊ฐ์ฒด์ ์ ๋ณด๊ฐ ํฌํจ๋์ด์์ฃ ! ์ด๋ Class ํด๋์ค๋ฅผ ์ด์ฉํ์ฌ classํ์ผ์ ์๋ ๊ฐ์ฒด์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
์๋์ ๊ฐ์ด ๋ง์ด์ฃ !
Class<String> class1 = String.class;
2.๐จ๋๊ฐ๋ฉฐ
๊ฒฐ๋ก ์ ์ผ๋ก ์ฒ์ ๋ณด์๋ ์ฝ๋๋ ์ธ์์ AppConfig ํด๋์ค์ ๋ํ ์ ๋ณด๋ฅผ ๋๊ฒจ์ฃผ๊ณ ์๋ ์ํฉ์ผ๋ก ๋ณผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
'Java & Kotlin' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์์๋ค์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ์ฌ. (0) | 2022.09.17 |
---|---|
[Java] var ํค์๋์ ๋ํ์ฌ. (1) | 2022.08.20 |
[Java] ๋๋ค์๊ณผ ์คํธ๋ฆผ - (1) ๋๋ค์ ๊ธฐ๋ณธ (0) | 2022.03.11 |
[Java] List ์ ๋ ฌ์ ๋ํ์ฌ. (0) | 2022.03.06 |
[Java] ๋๊ธฐํ - synchronized์ volatile, Atomic Class์ ๋ํ์ฌ. (0) | 2022.03.06 |