Chapter 12 - ì ë€ëŠì€, ìŽê±°í, ì ëí ìŽì
1. ì§ë€ëŠì€(Generics)
- JDK 1.5ìì ì²ì ëì
1.1 ì§ë€ëŠì€ë?
- ë€ìí íì
ì ê°ì²Žë€ì ë€ë£šë ë©ìëë 컬ë ì
íŽëì€ì 컎íìŒ ìì íì
첎í¬ë¥Œ íŽì£Œë êž°ë¥
- íì ìì ì±ì ëìŽê³ íë³íì ë²ê±°ë¡ì ê°ì
1.2 ì§ë€ëŠ íŽëì€ì ì ìž
- íŽëì€ ìì
<T>
륌 ë¶ìŽê³ Object íŽëì€ë¥Œ 몚ë Të¡ ë³ê²œ- Të
íì ë³ì
ëŒê³ ë¶ëŠ (Tê° ìë ë€ë¥ž ê² ì¬ì©íŽë 묎êŽ)
- Të
- ì§ë€ëŠ íŽëì€ë¡ ê°ì²Žë¥Œ ì ìž ì ì°žì¡°ë³ìì ìì±ìì íì T ëì ì€ì íì ì ì§ì
- íì ížíì ìíŽ ìì ì ë°©ììŒë¡ ê°ì²Žë¥Œ ìì±íë ê²ë íì©íì§ë§ ìì íì§ ìë€ë ê²œê³ ë°ì
- Object륌 ì§ì í멎 ê²œê³ ë°ì X
ì§ë€ëŠì€ì ì©ìŽ
- Example : ì§ë€ëŠ íŽëì€
- T : íì ë³ì ëë íì ë§€ê°ë³ì
- Example : ììíì
- ì§ì ë íì
ì
ë§€ê°ë³ìíë íì
ìŽëŒê³ ë¶ëŠ - 컎íìŒ íìë ììíì ìŒë¡ ë°ë (ì§ë€ëŠ íì ìŽ ì ê±°ëš)
ì§ë€ëŠì€ì ì í
- ê°ì²Ž ìì± ì ê°ì²Žë³ë¡ ë€ë¥ž íì ì ì§ì íë ê²ì íì©
- 몚ë ê°ì²Žì ëìŒíê² ëìíŽìŒ íë static ë©€ë²ì íì ë³ì T륌 ì¬ì©í ì ìì
new T[10]
곌 ê°ìŽ new ì°ì°ìì íšê» ì¬ì©í ì ìì- 컎íìŒ ìì ì íì Tê° ë¬Žììžì§ ì íí ìììŒ íë¯ë¡
- ì§ë€ëŠ ë°°ìŽì êŒ ìì±íŽìŒ í멎 new ì°ì°ì ëì newInstance()ì ê°ì ëì ìŒë¡ ê°ì²Žë¥Œ ìì±íë ë©ìë or Object ë°°ìŽì ìì±íŽì ë³µì¬í í íë³í
1.3 ì§ë€ëŠ íŽëì€ì ê°ì²Ž ìì±ê³Œ ì¬ì©
- ì°žì¡°ë³ìì ìì±ìì ëì
ë íì
ìŽ ìŒì¹íŽìŒ ëš
- ìŒì¹íì§ ììŒë©Ž ìë¬ ë°ì
- ë íì ìŽ ììêŽê³ì¬ë ìë¬ ë°ì
- ë ì§ë€ëŠ íŽëì€ì íì ìŽ ììêŽê³ìŽë©° ëì ë íì ìŽ ê°ì ê²ì íì©
- JDK 1.7ë¶í°ë ì¶ì ìŽ ê°ë¥í ê²œì° íì ìëµ ê°ë¥
- ìì±ë ê°ì²Žì ë©ìëê° ë§€ê°ë³ìë¡ íì ë³ì ê°ì²Žë¥Œ ë°ì ë íì ë³ìì ììë€ë ë§€ìëì ë§€ê°ë³ìê° ë ì ìì
1.4 ì íë ì§ë€ëŠ íŽëì€
- Të§ ì ìží멎 몚ë ì¢ ë¥ì íì ì ì§ì í ì ìì
- ì ë€ëŠ íì
ì
extends
륌 ì¬ì©í멎 í¹ì íì ì ììë€ë§ ëì í ì ìê² ì í ê°ë¥ - ìží°íìŽì€ë¥Œ 구ííŽìŒ íë ì ìœ ìì
extends
ë¡ íí- implements륌 ì¬ì©íì§ ììì 죌ì
- ìì ì ìœê³Œ 구í ìží°íìŽì€ê° 졎ì¬íë€ë©Ž
&
êž°ížë¡ ì°ê²° (<T extends ExampleClass & ExampleInterface>)
1.5 ììŒë 칎ë
- íëì ì°žì¡°ë³ìë¡ ìë¡ ë€ë¥ž íì
ì ëì
ë ì¬ë¬ ì§ë€ëŠ ê°ì²Žë¥Œ ë€ë£šêž° ìíŽ ì¬ì©
- ë©ìë륌 ížì¶í ëë§ë€ ë€ë¥ž íì ì ëì íŽìŒ í ë ì¬ì©
- <T extends Example> vs <? extends Example>
- <T extends Example>ë ë©ìë륌 ížì¶í ëë§ë€ ë€ë¥ž ì§ë€ëŠ íì ì ëì í ì ìê² í ê²
- <? extends Example>ë íëì ì°žì¡°ë³ìë¡ ìë¡ ë€ë¥ž íì ì ëì ë ì¬ë¬ ì§ë€ëŠ ê°ì²Žë¥Œ ë€ë£šêž° ìí ê²
- <? extends T> : ììŒë 칎ëì ìí ì í. Tì ê·ž ììë€ë§ ê°ë¥
- <? super T> : ììŒë 칎ëì íí ì í. Tì ê·ž ì¡°ìë€ë§ ê°ë¥
- <?> : ì í ìì. 몚ë íì ìŽ ê°ë¥. (<? extends Object>ì ëìŒ)
TestList<Parent> testList = new TestList<Parent>(); // íì©
TestList<Parent> childTestList = new TestList<Child1>(); // ìë¬
TestList<? extends Parent> wildCardChildTestList = new TestList<Child1>(); // íì©
wildCardChildTestList = new TestList<Child2>(); // íì©
wildCardChildTestList = new TestList<Child3>(); // íì©
1.6 ì§ë€ëŠ ë©ìë
- ë©ìëì ì ìžë¶ì ì§ë€ëŠ íì ìŽ ì ìžë ë©ìë (íŽëì€ì íì ë³ìê° ì ìžëë ê²ìŽ ìë!)
- ì§ë€ëŠ íŽëì€ì ì ìë íì
ë§€ê°ë³ìì ì§ë€ëŠ ë©ìëì ì ìë íì
ë§€ê°ë³ìë ì í ë³ê°ì ê²
- ê°ì 묞ì T ìŒì§ëŒë
- ë©ìëì ì ìžë ì§ë€ëŠ íì
ì ì§ì ë³ì륌 ì ìží ê²ê³Œ ê°ì
- ë©ìë ëŽììë§ ì¬ì©ë ê²
- ë©ìë ížì¶ ì íì
ë³ìì íì
ì ëì
íŽìŒ íì§ë§ ëë¶ë¶ì ê²œì° ì»ŽíìŒë¬ê° ì¶ì ê°ë¥íë¯ë¡ ìëµ
- ë©ìë륌 ížì¶í ë íì ì ìëµí ì ìë 겜ì°ìë ì°žì¡°ë³ìë íŽëì€ ìŽëŠ ìëµ ë¶ê°
- public static <T extends Comparable<? super T>> void sort(List<T> list)
- íì T륌 ììë¡ íë List륌 ë§€ê°ë³ìë¡ íì©
T
ë Comparableì 구íí íŽëì€ìŽìŽìŒ íš- Comparable<? super T>ìŽë¯ë¡ Comparableì ë§€ê°ë³ìë Tì Tì ì¡°ì íì ìŽ ëªšë ê°ë¥
1.7 ì§ë€ëŠ íì ì íë³í
- ì§ë€ëŠ íì
곌 ìì íì
ê°ì íë³íì ê°ë¥
- ê²œê³ ê° ë°ìí ë¿
- ëì
ë íì
곌 ë€ë¥ž ì§ë€ëŠ íì
ê°ìë íë³í ë¶ê°ë¥
- Objectì¬ë ë¶ê°ë¥
- í¹ì íì
ì
? extends Object
ìŒë¡ì íë³íë ê°ë¥- ë°ëë¡ë ê°ë¥íì§ë§ íìžëì§ ìì íë³íìŽëŒë ê²œê³ ë°ì
- Optional<Object>륌 Optional<String>ìŒë¡ ì§ì íë³í íë ê²ì ë¶ê°ë¥íì§ë§ ììŒë 칎ëê° í¬íšë ì§ë€ëŠ íì
ìŒë¡ íë³íí멎 ê°ë¥
- Optional<Object> -> Optional<?> -> Optional<T>
1.8 ì§ë€ëŠ íì ì ì ê±°
- 컎íìŒë¬ë ì§ë€ëŠ íì
ì ìŽì©íŽì ìì€íìŒì ì²Ží¬ í íìí ê³³ì íë³íì ë£ìŽì€ ë€ ì§ë€ëŠ íì
ì ê±°
- *.class íìŒìë ì§ë€ëŠ íì ì ëí ì ë³Žê° ìì
- íí ížíì±ì ì ì§íêž° ìíš
- ìì íì ìŒë¡ ìì±í ì ìëë¡ í ê²ë ë§ì°¬ê°ì§
- Ʞ볞ì ìž ì ê±° 곌ì
- ì§ë€ëŠ íì ì 겜ê³ë¥Œ ì ê±° (~ extends XXXë XXXë¡ ë³ê²œ, Të§ ìì ì Objectë¡ ë³ê²œ)
- ì§ë€ëŠ íì ì ì ê±°í í íì ìŽ ìŒì¹íì§ ììŒë©Ž íë³í ì¶ê°
2. ìŽê±°í(enums)
2.1 ìŽê±°íìŽë?
- ìë¡ êŽë šë ìì륌 ížëЬíê² ì ìžíêž° ìí ê²
- JDK 1.5ë¶í° ìë¡ ì¶ê°
- ê°ë¿ë§ ìëëŒ íì
ë êŽëŠ¬íš (CìžìŽì ìŽê±°íë³Žë€ í¥ìë ê²)
- íì ì ìì í ìŽê±°í(ì€ì ê°ë¿ë§ ìëëŒ íì ë 첎í¬)
- ììì ë€ë¥Žê² ìŽê±°í ììë Ʞ졎ì ìì€ë¥Œ ë€ì 컎íìŒíì§ ììë ëš
2.2 ìŽê±°íì ì ìì ì¬ì©
- enum ìŽê±°íìŽëŠ {ììëª 1, ììëª 2, ...}
- static ë³ì륌 ì°žì¡°íë¯
ìŽê±°íìŽëŠ.ììëª
ìŒë¡ ì°žì¡° ==
ë¡ ë¹êµê° ê°ë¥íë <,> ê°ì ë¹êµì°ì°ìë ì¬ì© ë¶ê°ë¥- compareTo()ë ì¬ì© ê°ë¥
- switch 묞ì case 묞ìë ì¬ì©ê° ë¥íë° ìŽê±°íì ìŽëŠì ì ì§ ë§ê³ ììë§ ì ìŽìŒ íš
몚ë ìŽê±°íì ì¡°ì - java.lang.Enum
- getDeclaringClass(), name(), ordinal(), valueOf()륌 Enumìì ê°ê³ ìì
- ordinal()ì 0ë¶í° ììíë ìŽê±°íì ìì ë°í
- name()ì ìŽê±°íì ìŽëŠì 묞ììŽë¡ ë°í
- values(), valueOf(String name)ì 컎íìŒë¬ê° ìëì ìŒë¡ ì¶ê°íŽ ì£Œë ë©ìë
- values()ë ìŽê±°íì 몚ë ìì륌 ë°°ìŽì ëŽì ë°í
- valueof()ë ììì ëí 찞조륌 ì»ê² íŽì€
2.3 ìŽê±°íì ë©€ë² ì¶ê°íêž°
- ìŽê±°íì ìŽëŠ ìì ìíë ê°ì êŽížì íšê» ì ìŽì£Œë©Ž ê°ë¥
- ê·ž í ì§ì ë ê°ì ì ì¥í ì ìë ìžì€íŽì€ ë³ìì ìì±ì륌 ìë¡ ì¶ê° íŽìŒíš
- ìŽê±°í ìì륌 몚ë ì ìí ë€ì ë€ë¥ž ë©€ë²ë€ì ì¶ê° íŽìŒíš
- ìŽê±°í ììì ë§ì§ë§ì ';'ë ìì§ ë§ ê²
- ê·ž í ì§ì ë ê°ì ì ì¥í ì ìë ìžì€íŽì€ ë³ìì ìì±ì륌 ìë¡ ì¶ê° íŽìŒíš
- ìŽê±°í ìì±ìë ì ìŽìê° ë¬µìì ìŒë¡ private
- ì¬ë¬ ê°ì ë§ë ìžì€íŽì€ ë³ìì ìì±ì륌 ìë¡ ì¶ê°íë€ë©Ž ìŽê±°í ììì ì¬ë¬ ê°ì ì ì¥í ì ìì
ìŽê±°íì ì¶ì ë©ìë ì¶ê°íêž°
- ìŽê±°íì ì¶ìë©ìë륌 ì ìží멎 ê° ìŽê±°í ììê° ì¶ì ë©ìë륌 ë°ëì 구ííŽìŒ íš
2.4 ìŽê±°íì ìŽíŽ
- ìŽê±°í ìì íëíëê° ê°ì²Ž
- Enum íŽëì€ì static ìììž ìŽê±°í ììë€ì ê°ì ê°ì²Žì 죌ììŽë©° ë°ëì§ ììŒë¯ë¡
==
ë¡ ë¹êµê° ê°ë¥í ê²- ìë¡ì ordinalì 빌죌ë ë°©ììŒë¡ 구í
3. ì ëí ìŽì (annotation)
3.1 ì ëí ìŽì ìŽë?
- javadocì ë§ë€ìŽëŽë 죌ìì
@
ìŽ ë¶ì íê·ž êž°ë¥ì ìì©íì¬ ë§ë êž°ë¥ - íë¡ê·žëšì ìì€ìœë ìì ë€ë¥ž íë¡ê·žëšì ìí ì 볎륌 믞늬 ìœìë íììŒë¡ í¬íšìíš ê²
- 죌ìì²ëŒ íë¡ê·žëë° ìžìŽì ìí¥ì 믞ì¹ì§ ììŒë©Žìë ë€ë¥ž íë¡ê·žëšìê² ì ì©í ì 볎륌 ì ê³µ
- êŽë š ìë íë¡ê·žëšìë§ ìí¥
- JDKìì ì ê³µíë íì€ ìëí
ìŽì
ì ì£Œë¡ ì»ŽíìŒë¬ìê² ì ì©í ì 볎 ì ê³µ
- ìë¡ìŽ ì ëí ìŽì ì ì ìí ë ì¬ì©íë ë©í ì ëí ìŽì ë ì ê³µ
3.2 íì€ ì ëí ìŽì
- íì€ ì ëí
ìŽì
- @Override, @Deprecated, @SuppressWarnings, @SafeVarags, @FunctionalInterface, @Native
- íì€ ì ëí
ìŽì
ì€ ë©í ì ëí
ìŽì
- @Target, @Documented, @Inherited, @Retention, @Repeatable
@Override
- ë©ìë ììë§ ë¶ìŒ ì ìì
- ì¡°ìì ë©ìë륌 ì€ë²ëŒìŽë© íë ê²ìŽëŒë 걞 컎íìŒë¬ìê² ìë €ì€
- ë©ìë ìŽëŠì ì 못 ì°ë©Ž 컎íìŒë¬ê° ìë¬ ì¶ë ¥
- íìë ìëì§ë§ ì€ì륌 ë°©ì§ íŽì£Œë ì ëí ìŽì
@Deprecated
- ë ìŽì ì¬ì©ëì§ ìë íëë ë©ìëì ë¶ìŽë ì ëí ìŽì
- ë€ë¥ž ê²ìŒë¡ ë첎ëììŒë ë ìŽì ì¬ì©íì§ ìì ê²ì ê¶íë ì믞
@FunctionalInterface
- íšìí ìží°íìŽì€ë¥Œ ì ìží ë ìŽ ì ëí ìŽì ì ë¶ìŽë©Ž 컎íìŒë¬ê° ì¬ë°ë¥ž íšìí ìží°íìŽì€ìžì§ íìž
- ì못ë ê²œì° ì»ŽíìŒë¬ê° ìë¬ ì¶ë ¥
- íìë ìëì§ë§ ì€ì륌 ë°©ì§íŽ ì£Œë ì ëí ìŽì
@SuppressWarnings
- 묵ìžíŽìŒ íë ê²œê³ ê° ë°ìíë ëìì ë¶ì¬ì 컎íìŒ íì ìŽë€ ê²œê³ ë©ìì§ë ëíëì§ ìê² íš
- -Xlint ìµì ìŒë¡ ëì€ë ê²œê³ ì ì¢ ë¥ ì€ ëêŽíž[]ìì ìë ê²œê³ ë¥Œ ìµì í ì ìì
- ìµì íë ê²œê³ ë¡ ì£Œë¡ ì¬ì©ëë ê²ì "deprecation", "uncheked", "rawtypes", "varargs"
- ë°°ìŽì²ëŒ êŽíž{}륌 ì¬ì©íŽ ë ìŽìì ê²œê³ ë¥Œ ëìì ìµì í ìë ìì
- main() ë©ìëì ë¶ì¬ì íŽë¹ ê²œê³ ì êŽë šë 몚ë ë©ìžì§ë¥Œ ìµì í ì ìì§ë§ ìµì ë²ì륌 ìµìííë ê²ìŽ ì¢ë€.
@SafeVarargs
- 컎íìŒ íìë ì ê±°ëì§ ìë íì
ì reifiable, ì ê±°ëë íì
ì non-reifiable íì
- ì§ë€ëŠ íì ë€ì ëë¶ë¶ 컎íìŒ ìì ì ê±°ëë¯ë¡ non-reifiable íì
- ë©ìëì ì ìžë ê°ë³ìžìì íì
ìŽ non-reifiable íì
ìŒ ê²œì° íŽë¹ ë©ìë륌 ì ìžíë ë¶ë¶ê³Œ ížì¶íë ë¶ë¶ì "uncheked" ê²œê³ ë¥Œ ìµì íêž° ìíŽì @SafeVarargs ì¬ì©
- ë§€ê°ë³ìê° ê°ë³ìžììŽë©Žì ì ë€ëŠ íì ìž ê²œì° (ex- Arrays.asList(T... a))
- ë©ìëì ì ìžë íì Të 컎íìŒ ê³Œì ìì Objectë¡ ë°ë
- 컎íìŒë¬ê° 몚ë ê°ì²Žê° ë€ìŽì¬ ì ììì 겜ê³
- íì§ë§ ì§ë€ëŠì€ë¥Œ ì¬ì©íêž° ë묞ì 컎íìŒë¬ê° ížì¶ ë¶ë¶ì 첎í¬íŽì T ìžì ë€ë¥ž íì ìŽ ë€ìŽê° ì ìê² í ê²ìŽë¯ë¡ ì ìœëë ìì
- ìŽë @SafeVarargs륌 ë¶ì
- @SuppressWarnings("unchecked")ë ë©ìë ì ìž ë¶ë¶ê³Œ ížì¶ëë ê³³ìì ì ëí ìŽì ì ë¶ì¬ìŒ íì§ë§ @SafeVarargsë ë©ìë륌 ížì¶íë ê³³ìì ë°ìíë ê²œê³ ë ìµì
- 'varargs' ê²œê³ ë ìµì í ì ììŒë¯ë¡ @SuppressWarnings("varargs")ì íšê» ìŽë ží ìŽì ì ë¶ì
3.3 ë©í ì ëí ìŽì
- ë©í ì ëí ìŽì ì ì ëí ìŽì ì ì ìí ë ì¬ì©
@Target
- ì ëí ìŽì ìŽ ì ì© ê°ë¥í ëìì ì§ì íë ë° ì¬ì©
- ì¬ë¬ ê°ì ê°ì êŽíž{}륌 ì¬ì©íŽìŒ íš
@Retention
- ì ëí ìŽì ìŽ ì ì§(retention)ëë êž°ê°ì ì§ì íë ë° ì¬ì©
- 컎íìŒë¬ê° ì¬ì©íë ì ëí ìŽì ì ì ì§ ì ì± ì 'SOURCE'
- ì ì§ ì ì± ìŽ 'RUNTIME'ìŒ ì ì€í ìì 늬íë ì ì íµíŽ íŽëì€ íìŒì ì ì¥ë ì ëí ìŽì ì ì 볎륌 ìœì ë€ ì²ëЬ
- ì ì§ ì ì±
'CLASS'ë 컎íìŒë¬ê° ì ëí
ìŽì
ì ì 볎륌 íŽëì€ íìŒì ì ì¥í ì ìê² íŽì€
- íŽëì€ íìŒìŽ JVMì ë¡ë©ë ì ì ëí ìŽì ì ì ë³Žê° ë¬Žìëë¯ë¡ ì€í ììë ì 볎륌 ì»ì ì ììŒë¯ë¡ ì ì¬ì© X
@Documented
- ì ëí ìŽì ì ëí ì ë³Žê° javadocìŒë¡ ìì±í 묞ìì í¬íšëëë¡ íš
@Inherited
- ì ëí
ìŽì
ìŽ ìì íŽëì€ì ììëëë¡ íš
- ì¡°ì íŽëì€ì ë¶ìŽë©Ž ìì íŽëì€ë ìŽ ì ëí ìŽì ìŽ ë¶ì ê²ê³Œ ê°ìŽ ìžì
@Repeatable
- @RepeatableìŽ ë¶ì ì ëí ìŽì ì ì¬ë¬ ë² ë¶ìŒ ì ìì
- ìŽ ì ëí ìŽì ë€ì íëë¡ ë¬¶ìŽì ë€ë£° ì ìë ì ëí ìŽì ë ì¶ê°ë¡ ì ìíŽìŒ íš
@Native
- ë€ìŽí°ëž ë©ìëì ìíŽ ì°žì¡°ëë ìì íëì ë¶ìŽë ì ëí
ìŽì
- ë€ìŽí°ëž ë©ìëë JVMìŽ ì€ì¹ë OSì ë©ìë륌 ì믞
- ë³Žíµ CìžìŽë¡ ìì±
- ìë°ììë ë©ìëì ì ìžë¶ë§ ì ìíê³ êµ¬íì X
- ì¶ìë©ìë ì²ëŒ ì ìžë¶ë§ ìê³ ëªžíµìŽ ìì
3.4 ì ëí ìŽì íì ì ìíêž°
- @ êž°ížë¥Œ ë¶ìŽê³ ìží°íìŽì€ë¥Œ ì ìíë ê²ê³Œ ëìŒ
ì ëí ìŽì ì ìì
- ì ëí
ìŽì
ëŽì ì ìžë ë©ìë륌 ì ëí
ìŽì
ììëŒê³ ë¶ëŠ
- ë°íê°ìŽ ìê³ ë§€ê°ë³ìë ìë ì¶ì ë©ìëì íí
- ììì íµíŽ êµ¬ííì§ ììë ëš
- ì ëí ìŽì ì ì ì©í ë ìŽ ììë€ì ê°ì ë¹ ì§ììŽ ì§ì íŽ ì€ìŒ íš
- ì§ì í ë ììë ìêŽ X
- ê° ììë Ʞ볞ê°ì ê°ì§ ì ìê³ ê°ì ì§ì íì§ ìì ì ì¬ì©ëš
- ìëí ìŽì ì ììê° íëë¿ìŽê³ ìŽëŠìŽ value ìŒ ë ììì ìŽëŠì ìëµ í ê°ë§ ì ìŽë ì ì© ê°ë¥
- ììì íì ìŽ ë°°ìŽìž ê²œì° êŽíž{}륌 ì¬ì©íŽì ì¬ë¬ ê°ì ê°ì ì§ì
- êž°ë³žê° ëí êŽíž{}ë¡ ì§ì ê°ë¥
java.lang.annotation.Annotation
- 몚ë ì ëí ìŽì ì ì¡°ì
- ì ëí ìŽì ì ìììŽ íì©ëì§ ììŒë¯ë¡ ëª ìì ìŒë¡ extends ì§ì ë¶ê°ë¥
- Annotaionì ìŒë°ì ìž ìží°íìŽì€ë¡ ì ìëìŽ ìì
- equals(), hashCode(), toString()곌 ê°ì ë©ìëë€ìŽ ì ìëìŽ ììŒë¯ë¡ ì ëí ìŽì ê°ì²Žìì ížì¶ ê°ë¥
- TestClass.class.getAnnotations()ë¡ TestClassì ì ì©ë 몚ë ì ëí ìŽì ížì¶ ê°ë¥ ë° ìží°íìŽì€ì ì ìë ë©ìë ížì¶ ê°ë¥
ë§ì»€ ì ëí ìŽì Marker Annotation
- ììê° íëë ì ìëì§ ìì ì ëí
ìŽì
ì ë§ì»€ ì ëí
ìŽì
ìŽëŒê³ ë¶ëŠ
- ê°ì ì§ì í íìê° ìë ì ëí ìŽì ë€
ì ëí ìŽì ììì ê·ì¹
- ë°ëì ì§ìŒìŒ íë ê·ì¹ë€
- ììì íì ì Ʞ볞í, String, enum, ì ëí ìŽì , classë§ íì©
- () ìì ë§€ê°ë³ì륌 ì ìží ì ìë€.
- ììžë¥Œ ì ìží ì ìë€.
- ìì륌 íì ë§€ê°ë³ìë¡ ì ìí ì ìë€.
- íŽëì€ ê°ì²Žìë íŽë¹ íŽëì€ì ëí 몚ë ì 볎륌 ê°ê³ ìê³ ì ëí ìŽì ì ì 볎ë í¬íšëìŽ ìì
'Java > Javaì ì ì' 칎í ê³ ëŠ¬ì ë€ë¥ž êž
Chapter 14 - ëë€ì ì€ížëŠŒ (0) | 2022.05.17 |
---|---|
Chapter 13 - ì°ë ë(Thread) (0) | 2022.05.12 |
Chapter 11 - 컬ë ì íë ìì (0) | 2022.05.05 |
Chapter 10 - ë ì§ì ìê° & íìí (0) | 2022.04.28 |
Chapter 09 - java.lang íší€ì§ì ì ì©í íŽëì€ (0) | 2022.04.26 |