Reflection

๋ฆฌํ”Œ๋ ‰์…˜์€ ๊ตฌ์ฒด์ ์ธ ํด๋ž˜์Šค ํƒ€์ž…์„ ์•Œ์ง€ ๋ชปํ•ด๋„, ๊ทธ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ, ํƒ€์ž…, ๋ณ€์ˆ˜๋“ค์„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์ž๋ฐ”API์ด๋‹ค.

JVM์— ๋กœ๋”ฉ๋˜์–ด ์žˆ๋Š” ์žˆ๋Š” ํด๋ž˜์Šค์™€ ๋ฉ”์†Œ๋“œ ์ •๋ณด๋ฅผ ์ฝ์–ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

public class Car{
    public void drive{
        // ....
    }
}
public class Main{
    public static void main(String[] args){
        Object car = new Car();
        car.drive(); // ์ปดํŒŒ์ผ ์—๋Ÿฌ
    }
}

Object ํƒ€์ž…์œผ๋กœ Carํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋ฉ”์†Œ๋“œ๋Š” Object์˜ ๋ณ€์ˆ˜๋“ค๊ณผ ๋ฉ”์†Œ๋“œ๋“ค ๋ฟ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ๋ฆฌํ”Œ๋ ‰์…˜์ด๋‹ค.

์ž๋ฐ” ํด๋ž˜์Šค ํŒŒ์ผ์€ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋˜์–ด์„œ static ์˜์—ญ์— ์œ„์น˜ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํด๋ž˜์Šค ์ด๋ฆ„๋งŒ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์–ธ์ œ๋“ ์ง€ ์ด ์˜์—ญ์„ ์‚ดํŽด ํด๋ž˜์Šค ์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

  • ClassName

  • Class Modifiers(public, private, synchronized)

  • Package Info

  • Superclass

  • Implemented Interfaces

  • Constructors

  • MethodsFields

  • Annotations

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •๋ณด๋“ค์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์ฐธ์กฐํŽ˜์ด์ง€

Last updated