Enhanced @Deprecated ใน Java 9
Java 9 เพิ่ม 2 attributes ให้ @Deprecated annotation: since และ forRemoval ทั้งคู่เป็น optional มีค่า default
1. since (String)
ระบุ version ที่ API ถูก deprecated ค่า default = empty string
Syntax
@Deprecated(since="<version>")
2. forRemoval (boolean)
ระบุว่า API นี้ตั้งใจจะลบใน release หน้าหรือไม่ ค่า default = false
Syntax
@Deprecated(forRemoval=<boolean>)
ตัวอย่างการใช้งาน
public class DeprecatedAnnotationTest {
public static void main(String[] args) {
DeprecatedAnnotationTest test = new DeprecatedAnnotationTest();
test.method1();
test.method2();
}
@Deprecated(since="7.0")
public void method1() {
System.out.println("@Deprecated(since=\"7.0\")");
}
@Deprecated(since="5.0", forRemoval=true)
public void method2() {
System.out.println("@Deprecated(since=\"5.0\", forRemoval=true)");
}
}
Output
@Deprecated(since="7.0") @Deprecated(since="5.0", forRemoval=true)
ประโยชน์
- ให้ข้อมูลเพิ่มเติมสำหรับ tooling (IDE, static analysis)
- ช่วย developer ตัดสินใจ migrate ได้ดีขึ้น
- forRemoval=true แจ้งเตือนว่าอาจถูกลบในอนาคต
สรุป
@Deprecated ใน Java 9 มีข้อมูล metadata ครบถ้วนขึ้น ช่วยให้การจัดการ deprecated API มีระบบและชัดเจน