ตัวอย่างโค้ด
import java.util.Vector;
public class Demo {
public static void myEmptyFun() {
// เมธอดว่าง - ไม่มีคำสั่งใดๆ ภายใน
}
public static void main(String[] args) {
System.out.println("อยู่ในเมธอด main");
myEmptyFun(); // เรียกเมธอดว่าง - ไม่เกิดอะไรขึ้น
}
}
ผลลัพธ์
อยู่ในเมธอด main
คำอธิบาย
เมธอดว่าง (empty method) คือเมธอดที่宣告ไว้แต่ไม่มีการดำเนินการใดๆ ภายในブロック `{}` - มีเพียงวงเล็บปีกกาเปิด-ปิดอย่างเดียว
กรณีที่ใช้เมธอดว่าง
- Placeholder - รอการนำมา implement ภายหลัง (เช่นใน abstract class หรือ interface default method)
- Override เพื่อปิดการทำงาน - ยกเลิกพฤติกรรมจาก superclass
- Callback/Event handler - ผู้ใช้สามารถ override ได้แต่ไม่บังคับ
- Template Method Pattern - เป็น hook method ที่ subclass อาจจะ override หรือไม่ก็ได้
ตัวอย่างการใช้งานจริง
abstract class Game {
// Hook method - subclass อาจ override หรือไม่ก็ได้
protected void onGameStart() {}
protected void onGameEnd() {}
public final void play() {
onGameStart();
// game logic...
onGameEnd();
}
}
class Chess extends Game {
@Override
protected void onGameStart() {
System.out.println("Chess game started!");
}
// onGameEnd() ไม่ override - ใช้ empty method จาก parent
}
ข้อควรระวัง
- เมธอดว่างที่เป็น
publicอาจสับสนผู้ใช้ API ว่าควรทำอะไร - ควรเพิ่ม JavaDoc อธิบายวัตถุประสงค์ของเมธอดว่าง
- หลีกเลี่ยงการทิ้งเมธอดว่างไว้โดยไม่มีคำอธิบายใน production code