Java·ο»ΏServlet·ο»ΏJSP

[JAVA] Class 클래슀λ₯Ό μ΄μš©ν•΄ λ©”μ†Œλ“œμ™€ μƒμ„±μž μ–»κΈ°

Leica 2023. 2. 12. 22:39
λ°˜μ‘ν˜•

JAVA의 Class 클래슀

Object의 getClass() λ©”μ†Œλ“œλŠ” Class 객체λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. Class ν΄λž˜μŠ€λŠ” ν•΄λ‹Ή ν΄λž˜μŠ€μ— μ„ μ–Έλœ λ©”μ†Œλ“œμ™€ μƒμ„±μžλ“€μ„ λ°˜ν™˜ν•˜λŠ” λ©”μ†Œλ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. getDeclaredConstructors(), getMethods()κ°€ κ·ΈλŸ¬ν•œ λ©”μ†Œλ“œλ“€μž…λ‹ˆλ‹€.

 

Class#getName()

Object obj = new Object();
Class clazz = obj.getClass();
System.out.println(clazz.getName());

πŸ–₯ μ‹€ν–‰κ²°κ³Ό

java.lang.Object

getName()은 클래슀 이름을 λ¦¬ν„΄ν•©λ‹ˆλ‹€.

 

Class#getDeclaredConstructors()

...
Constructor[] constructors = clazz.getDeclaredConstructors();
for(Constructor constructor: constructors) {
    System.out.println(constructor.getName());
}

πŸ–₯ μ‹€ν–‰κ²°κ³Ό

java.lang.Object

getDeclaredConstructors()λŠ” 클래슀의 λͺ¨λ“  μƒμ„±μžλ₯Ό array둜 λ¦¬ν„΄ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ λ°˜ν™˜λœ Constructor 객체λ₯Ό μ΄μš©ν•΄ μƒμ„±μžμ— λŒ€ν•œ 정보λ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. μœ„ μ½”λ“œμ—μ„œλŠ” Constructor의 getName()을 μ΄μš©ν•΄μ„œ μƒμ„±μžμ˜ μ΄λ¦„λ§Œ 좜λ ₯ν•©λ‹ˆλ‹€.

 

Class#getMethods()

Method[] methods = clazz.getMethods();
for(Method method: methods) {
    System.out.println(method.getName());
}

πŸ–₯ μ‹€ν–‰κ²°κ³Ό

wait
wait
wait
equals
toString
hashCode
getClass
notify
notifyAll

getMethods()λŠ” 클래슀의 λͺ¨λ“  λ©”μ†Œλ“œλ₯Ό array둜 λ°˜ν™˜ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ λ°˜ν™˜λœ Method 객체λ₯Ό μ΄μš©ν•΄ λ©”μ†Œλ“œμ— λŒ€ν•œ 정보λ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. μœ„ μ½”λ“œμ—μ„œλŠ” Method의 getName()을 μ΄μš©ν•΄μ„œ λ©”μ†Œλ“œμ˜ μ΄λ¦„λ§Œ 좜λ ₯ν•©λ‹ˆλ‹€.

 

μ΄λ ‡κ²Œ Class ν΄λž˜μŠ€λŠ” λͺ¨λ“  객체에 λŒ€ν•œ 객체 μžμ‹ μ˜ 정보 등을 μ œκ³΅ν•˜λ©°, 이λ₯Ό Reflection이라고 ν•©λ‹ˆλ‹€.

 

References

초보자λ₯Ό μœ„ν—Œ Java 200제 (2판)

 

λ°˜μ‘ν˜•