ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ ์ด์ ์๋ก์ด ๋ฐฉ๋ฒ์ ๋ํด get์ ์ฌ์ฉํ์ง ์๋ ๊ฒ ๊ฐ์์ ์ด์ ๋ํ ํผ๋๋ฐฑ์ ์ฐพ๊ณ ์์ต๋๋ค.
๋ฐ๋ผ์ ํ์ฌ ํฌํ๋ 2:+1: ๋ฐ 7:-1:์ ๋๋ค. 24์๊ฐ ์ด๋ด์ ์ถ๊ฐ ํฌํ๋ ๋๊ธ์ด ์์ผ๋ฉด ์ด๋ฅผ ๊ฒฐ๊ณผ๋ก ๊ฐ์ฃผํฉ๋๋ค. Discord peeps ๋ง์์ ์ดํด๋ณด์ญ์์ค.
๋๋ ๋ณ๊ฒฝ์ ์ง์งํ์ง๋ง ๋๋๋ก get
์ ๋์ฌ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์์ฑ๋ ๋ช ๊ฐ์ง ๊ท์น์ด ํ์ํฉ๋๋ค.
JDK๊ฐ ์ด์ ์ ๊ทผํ๋ ๋ฐฉ์์ ์ด์์ ์ผ๋ก ๋ฏธ๋ฌ๋งํฉ๋๋ค.
setter๊ฐ ์์ ๋ jdk์ get
์ ๋์ฌ๊ฐ ์์ต๋๊น? setter๊ฐ ์์ ๋์ ์์ ๋๋ก ๋๋์ด์ผ ํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ ์ฝ๋ getter ๋ฉ์๋์๋ get
์ ๋์ฌ๊ฐ ์์ง๋ง setter๊ฐ ์๊ณ ์ ์ฌ์ ์ธ ์ด๋ฆ ํผ๋์ด ์์ต๋๋ค.
์ฌ์ค, ์ผ๋ถ ์๋ก์ด jdk getter์๋ get
์ ๋์ฌ๊ฐ ์๋ ๋ฐ๋ฉด ๋ค๋ฅธ getter์๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ธ์์ ์ธ ์๋ MethodType type()
getter ๋ฐ MethodHandle getTarget()
getter๊ฐ ์๋ invokedynamic ๋ฐ์ดํธ์ฝ๋ ๋ช
๋ น์ด์ ๋ถํธ์คํธ๋ฉ ๋ฉ์๋ ์์ฑ์์ ์์ฃผ ์ฌ์ฉ๋๋ jdk 7์์ ๋น๊ต์ ์ต๊ทผ์ ๋์
๋ java.lang.invoke.CallSite
์
๋๋ค. ์ ํ ํ๋๋ ๋ณ๊ฒฝํ ์ ์๋ ๋ฐ๋ฉด ๋์ ์ ํ์ ๋ณ๊ฒฝ ๊ฐ๋ฅํฉ๋๋ค. setTarget(MethodHandle)
๋ ์์ต๋๋ค. ๋ํ ์ผ๋ถ ๋ค๋ฅธ ์ต์ API๋ get
์ ๋์ฌ๋ ์ฌ์ฉํฉ๋๋ค(์: Java 9์ Class.getModule
).
JDK์ ํ์ค์ immutable์ ์ ๋์ฌ๊ฐ ์๊ณ mutable์ ์ ๋์ฌ๊ฐ ๋ถ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ๊ฐ ๋ถ๋ณ์ด๋ฏ๋ก getter ๋๋ setter๊ฐ ์๋ ์ ๋ ์ฝ๋์์ ๋ค์ ๋ณผ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
JDK์ ํ์ค์ immutable์ ์ ๋์ฌ๊ฐ ์๊ณ mutable์ ์ ๋์ฌ๊ฐ ๋ถ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ๊ฐ ๋ถ๋ณ์ด๋ฏ๋ก getter ๋๋ setter๊ฐ ์๋ ์ ๋ ์ฝ๋์์ ๋ค์ ๋ณผ ์ ์์ต๋๋ค.