📁 ex01
☕ Count.java
@Retention(RetentionPolicy.RUNTIME)
public @interface Count {
//int value(); // 기본값이 없을 때
int value() default 1; // 💡 기본값 설정
}
☕ Main.java
// 💡 괄호 안에 {필드명} = {값}
@Count(value = 3)
private int apples;
// 💡 default가 있을 시 생략 가능
@Count
private int bananas;
// 💡 필드가 하나고 필드명이 value일 시
// - 값만 넣을 수 있음
@Count(5)
private int cacaos;
☕ PersonName.java
@Retention(RetentionPolicy.RUNTIME)
public @interface PersonName {
String first();
String last();
}
☕ Main.java
// 💡 값이 여럿일 시. 순서 무관
@PersonName(last = "홍", first = "길동")
private Object seller;
☕ PersonInfo.java
@Retention(RetentionPolicy.RUNTIME)
public @interface PersonInfo {
// 💡 다른 어노테이션을 항목으로 가짐
PersonName personName();
int age();
boolean married();
}
☕ Main.java
// 💡 어노테이션의 값으로 어노테이션 사용
@PersonInfo(
personName = @PersonName(last = "전", first = "우치"),
age = 30,
married = true
)
private Object sellerInfo;