ในโลกของการเขียนโปรแกรม Java, "Annotations" หรือ การประทับเครื่องหมาย เป็นเครื่องมือที่ใช้ในการให้ข้อมูลเพิ่มเติมแก่โค้ดของเรา โดยไม่เปลี่ยนแปลงพฤติกรรมของโค้ดเอง ในบทความนี้ เราจะพูดถึง 5 Annotations พื้นฐานที่มีประโยชน์ในการเขียนโปรแกรม Java และจะตรวจสอบฟีเจอร์ "Repeating Annotations" ที่เพิ่มเข้ามาใน Java 8 ทำให้การใช้งาน Annotations เป็นเรื่องที่ง่ายและมีประสิทธิภาพมากขึ้น
Annotation `@Override` ใช้เพื่อระบุว่าเมทอดที่เราเขียนนั้นเป็นการ override เมทอดจาก superclass หรือ interface ที่เรามีไว้ การใช้ `@Override` ช่วยให้โค้ดของเราอ่านง่ายขึ้น และช่วยลดความผิดพลาดเนื่องจากคอมไพเลอร์จะตรวจสอบว่าเมทอดที่เรา override นั้นผิดพลาดหรือไม่
class Animal {
void sound() {
System.out.println("This animal makes a sound");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("The dog barks");
}
}
การใช้ `@Deprecated` เป็นการแสดงว่าเมทอดหรือคลาสนั้นไม่ควรถูกใช้งานอีกต่อไป เนื่องจากอาจมีความเสี่ยงหรือมีเวอร์ชันที่ดีกว่า เมื่อผู้พัฒนาอื่นเห็น Annotations นี้ จะทราบทันทีว่าควรหลีกเลี่ยงการใช้งาน
@Deprecated
class MyOldClass {
// ...
}
class MyNewClass {
// ...
}
`@SuppressWarnings` อนุญาตให้เราบอกกับคอมไพเลอร์ว่าไม่ต้องแสดงคำเตือนใด ๆ สำหรับโค้ดที่เราได้ทำเครื่องหมายไว้ โปรดใช้อย่างระมัดระวังเพราะการซ่อนคำเตือนบางอย่างอาจนำไปสู่ปัญหาได้
@SuppressWarnings("unchecked")
public void myMethod() {
// ... โค้ดที่อาจทำให้คอมไพเลอร์แสดงคำเตือน ...
}
นับตั้งแต่ Java 7, `@SafeVarargs` ใช้เพื่อยืนยันว่าเมทอดที่ไม่เปลี่ยนแปลงข้อมูลที่เก็บอยู่ใน varargs parameter เป็นประเภท genetric จะไม่ก่อให้เกิดปัญหาความเสี่ยง ไม่แนะนำให้ใช้หากคุณไม่มั่นใจในความเสี่ยงเหล่านั้น
@SafeVarargs
final void safeVarargsMethod(T... elements) {
// ...
}
`@FunctionalInterface` เป็น Annotations ที่ใช้ตั้งแต่ Java 8 เพื่อระบุว่า interface นั้นเป็น functional interface หรือ interface ที่มีเพียง abstract method เดียว ซึ่งสามารถใช้ใน lambda expression และ method references
@FunctionalInterface
interface SimpleFunction {
void apply();
}
เมื่อพูดถึง Repeating Annotations ใน Java 8, เราสามารถใช้ Annotations เดียวกันหลายครั้งในการประกาศเดียว ซึ่งเป็นการปรับปรุงที่ดีจากข้อจำกัดเดิมๆ เราสามารถใช้ `@Repeatable` เพื่อสร้าง container annotation ที่รองรับการใช้งาน Annotations ซ้ำ
@Repeatable(Roles.class)
@interface Role {
String name();
}
@interface Roles {
Role[] value();
}
@Role(name="Administrator")
@Role(name="Member")
public class User {
// ...
}
Annotations ใน Java ช่วยให้เราเขียนโค้ดที่มีคุณภาพ สวยงาม และมีประสิทธิภาพมากขึ้น อีกทั้งยังมีการปรับปรุงที่สำคัญใน Java 8 ด้วยการนำเสนอ Repeating Annotations ที่นำพาความสะดวกสบายและความหลากหลายในการใช้ Annotations มากยิ่งขึ้น
หากคุณสนใจในการเขียนโปรแกรมที่มีคุณภาพและต้องการพัฒนาทักษะในการใช้ Annotations และฟีเจอร์อื่นๆ ใน Java ลงทะเบียนเรียนกับทาง EPT เพื่อเรียนรู้และพัฒนาความรู้จากเบื้องต้นจนถึงระดับสูงสุดได้ เรามีคอร์สการสอนที่เข้าใจง่าย เนื้อหาทันสมัย และพร้อมตอบสนองแก่การเรียนรู้และการพัฒนาทักษะของคุณ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: java annotations override deprecated suppresswarnings safevarargs functionalinterface repeating_annotations programming code_quality java_8
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com