Javaμ μ΄λ
Έν
μ΄μ
(Annotation)
μ΄λ
Έν
μ΄μ
μ μ°λ¦¬λλΌ λ§λ‘ μ£Όμ
μ λ»νλ€. Javaμ μ΄λ
Έν
μ΄μ
μ μ΄λ
Έν
μ΄μ
μ΄ μ§μ λ ν΄λμ€/λ©μλ/νλ λ±μ νΉμ±μ μ€λͺ
νκ±°λ, μ§μΌμΌ ν κ·μ½
μ μ§μ νκΈ° μν μ©λλ‘ μ¬μ©λλ€.
Javaμ μ΄λ Έν μ΄μ μ ν¬κ² 3κ°μ§λ‘ λΆλ₯λλ€.
μ»΄νμΌ νμμ νΉμ μλ¬λ₯Ό 체ν¬ν μ μλλ‘ ν¨
@Override
,@Deprecated
,@FunctionalInterface
,@SuppressWarnings
λ€λ₯Έ νλ‘κ·Έλ¨(SW)μ΄ λΉλ/λ°°μΉ μ νΉμ μ½λλ₯Ό μλμΌλ‘ μμ±(μ£Όμ )ν μ μλλ‘ ν¨
λ°νμ μ νΉμ κΈ°λ₯μ μ€ν
λ±μ₯ μ΄μ
μ΄λ Έν μ΄μ μ JDK 1.5λΆν° λμ λ κΈ°λ₯μ΄λ€. κ·Έ μ μλ ν΄λμ€, λ©μλ, νλ μ€ μΌλΆκ° μνν΄μΌ ν λ‘μ§, μ€μν΄μΌ ν κ·μ½ λ±μ λΆκ° μ 보λ₯Ό μ½λμ ν¬ν¨μν€κ±°λ λ³λμ μ€μ νμΌλ‘ λΆλ¦¬νμ¬ κ΄λ¦¬νλ μλ°μ μμλλ°, κ° λ°©λ²μ λ€μμ λ¬Έμ λ‘ μ΄μ΄μ‘λ€.
λΆκ° μ λ³΄κ° μ½λμ ν¬ν¨λλ κ²½μ°
μ€λ³΅λ λ‘μ§μ μ¬λ¬ μ½λμ λ£μΌλ―λ‘ νμ₯μ± λ©΄μμ μ’μ§ μμ
λ§ κ·Έλλ‘ λΆκ° μ 보μ΄λ―λ‘ μ± μμ΄ μ λΆλ¦¬λμ§ μμ μ½λκ° λ¨
κ°λ μ± λ©΄μμλ μ’μ§ μμ. ν΄λΉ λΆκ° μ λ³΄κ° λ¬΄μμ μν μ 보μΈμ§ ν λμ νμ νκΈ° μ΄λ €μ
μ€μ νμΌλ‘ λΆλ¦¬νλ κ²½μ°
μ½λμ μ€μ μ΄ λΆλ¦¬λμ΄ μμ΄ κ΄λ¦¬νλ κ²μ΄ λΆνΈν¨
μ½λλ μμ νκ³ μ€μ νμΌμ μμ νμ§ μμ λΆμΌμΉ λ¬Έμ κ° λ°μνκΈ°λ ν¨
μ΄λ¬ν κ°λ
μ± μ ν λ¬Έμ , λ³λ μ€μ νμΌ κ΄λ¦¬ λ¬Έμ λ±μ ν΄κ²°νκΈ° μν΄ λΆκ° μ 보λ₯Ό νλμ λ¨μ΄λ‘ ννν΄ μ½κ² μλλ₯Ό νμΈν μ μκ³ , μ€μ μ΄ μ½λμ λμΌν νμΌμ μ‘΄μ¬ν΄ μ€μ κ³Ό μ½λλ₯Ό ν¨κ» λ€λ£° μ μλ
μ΄λ
Έν
μ΄μ
κΈ°λ₯μ λμ
νμλ€.
Javaμμ μ 곡νλ νμ€ μ΄λ
Έν
μ΄μ
Javaμμλ μ¬λ¬ κ°μ§ λ΄μ₯ μ΄λ Έν μ΄μ μ μ§μνλ€.
λ³Έ κΈμμλ μ΄λ₯Ό μ»΄νμΌ νμμ νΉμ λμμ΄ μνλλλ‘ λλ λ΄μ₯ μ΄λ
Έν
μ΄μ
κ³Ό μ΄λ
Έν
μ΄μ
μ μ μΈν λ μ¬μ©λλ λ©ν μ΄λ
Έν
μ΄μ
μΌλ‘ λλμ΄ μ€λͺ
νλ€.
λ΄μ₯ μ΄λ
Έν
μ΄μ
@Override
ν΄λΉ μ΄λ Έν μ΄μ μ΄ μ¬μ©λ λ©μλκ° μ€λ²λΌμ΄λ©λμμμ λνλ
μ€λ²λΌμ΄λ©μ μ¬λ°λ₯΄κ² νλμ§ μ»΄νμΌλ¬κ° 체ν¬νλλ‘ ν¨
μ€λ²λΌμ΄λ©ν λ©μλκ° λΆλͺ¨ ν΄λμ€μ μλ κ²½μ° μ»΄νμΌ μλ¬λ₯Ό λ°μμν΄
μ§μΌμΌ ν κ·μ½μ μ§μ νκΈ° μν μ΄λ Έν μ΄μ μ ν΄λΉ
@Deprecated
ν΄λΉ μ΄λ Έν μ΄μ μ΄ μ¬μ©λ λ©μλκ° λ μ΄μ μ¬μ©λμ§ μμμ λνλ
ν΄λΉ μ΄λ Έν μ΄μ μ΄ μλ λ©μλλ₯Ό μ¬μ©νλ©΄ μ»΄νμΌ μ κ²½κ³ λ©μμ§λ₯Ό μΆλ ₯ν¨
μ§μΌμΌ ν κ·μ½μ μ§μ νκΈ° μν μ΄λ Έν μ΄μ μ ν΄λΉ
@SuppressWarnings
ν΄λΉ μ΄λ Έν μ΄μ μ΄ μ¬μ©λ κ³³μμ λ°μν μ»΄νμΌ μλ¬λ₯Ό 무μν¨
νΉμ warningμ λν΄ μ»΄νμΌλ¬κ° κ²½κ³ λ©μμ§λ₯Ό μΆλ ₯νμ§ μλλ‘ μ΅μ
@FunctionalInterface
ν¨μν μΈν°νμ΄μ€μ λΆμ΄λ©΄ μ»΄νμΌλ¬κ° μ¬λ°λ₯΄κ² μμ±νλμ§ μ²΄ν¬νλλ‘ ν¨
ν¨μν μΈν°νμ΄μ€λ λ¨ νλμ μΆμλ©μλλ§ κ°μ ΈμΌ ν¨
λ©ν μ΄λ
Έν
μ΄μ
(μ΄λ
Έν
μ΄μ
μ μΈμ μν μ΄λ
Έν
μ΄μ
)
@Target
μ΄λ Έν μ΄μ μ μ μ©ν νμ μ μ§μ
ν΄λμ€, λ©μλ, μμ±μ, νλ, ν¨ν€μ§, νλΌλ―Έν° λ±μ΄ μ£Όλ‘ μ¬μ©λλ€.
@Retention
μ΄λ Έν μ΄μ μ μ μ§ μ μ± (μΈμ κΉμ§ μ ν¨νμ§)μ μ§μ
Retention.SOURCE
: μ»΄νμΌ μ κΉμ§λ§ μ ν¨μ»΄νμΌλ κ²°κ³Όλ¬ΌμΈ λ°μ΄νΈμ½λ(.class νμΌ)μλ ν΄λΉ μ΄λ Έν μ΄μ μ΄ μ‘΄μ¬νμ§ μμ
μ£Όλ‘ μμ€ μ½λ μμ± μ€ μ€μνμ§ μλλ‘ μ μ½μ κ±°λ(μ§ν€μ§ μμ μ μ»΄νμΌ μλ¬ λ°μ) μ΄λ Έν μ΄μ μ μ¬μ©
Retention.CLASS
: μ»΄νμΌλ¬κ° ν΄λμ€λ₯Ό μ°Έμ‘°ν λκΉμ§ μ ν¨λ°μ΄νΈμ½λ(.class νμΌ)μλ μ‘΄μ¬νλ, ν΄λμ€ λ‘λμ μν΄ λ©λͺ¨λ¦¬μ μ μ¬λ λ μ κ±°λ¨
κ±°μ μ¬μ©νμ§ μμ
Retention.RUNTIME
: νλ‘κ·Έλ¨ μ€ν μ€μλ μ ν¨λ©λͺ¨λ¦¬μ μ μ¬λ λμλ ν΄λΉ μ΄λ Έν μ΄μ μ λ³΄κ° μ‘΄μ¬νμ¬ λ°νμμλ μ°Έμ‘° κ°λ₯
μ£Όλ‘ μ€ν μ€μλ νΈμΆλλ, νΉμ λ‘μ§μ μνν μ μκ² ν΄ μ£Όλ μ΄λ Έν μ΄μ μ μ¬μ©
@Documented
ν΄λΉ μ΄λ Έν μ΄μ μ Javadoc νλ‘κ·Έλ¨μ μν΄ μμ±λλ java documentationμ ν¬ν¨μν΄
@Inherited
ν΄λΉ μ΄λ Έν μ΄μ μ΄ μ¬μ©λ ν΄λμ€λ₯Ό μμνλ ν΄λμ€λ ν΄λΉ μ΄λ Έν μ΄μ μ κ°λλ‘ ν¨
Last updated