Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เมื่อไหร่ควรใช้เมธอด getClass() ใน Java

เมธอด getClass() มาจากคลาส Object คืนค่า อินสแตนซ์ของคลาส Class เมื่อสร้างอินสแตนซ์ใหม่ จะอ้างอิงถึงคลาสหนึ่ง ใน JVM หนึ่งมีคลาสเดียวต่อชื่อเต็ม แต่อ็อบเจกต์หลายตัวอาจอ้างอิงถึงคลาสเดียวกัน

ไวยากรณ์

public final Class<?> getClass()

ตัวอย่าง: ตรวจสอบคลาสของอ็อบเจกต์

class User {
    private int id;
    private String name;
    public User(int id, String name) {
        this.id = id;
        this.name = name;
    }
}

class SpecificUser extends User {
    private String specificId;
    public SpecificUser(String specificId, int id, String name) {
        super(id, name);
        this.specificId = specificId;
    }
}

public class TestUser {
    public static void main(String[] args) {
        User user = new User(115, "Raja");
        SpecificUser specificUser = new SpecificUser("AAA", 120, "Adithya");
        User anotherSpecificUser = new SpecificUser("BBB", 125, "Jai");
        
        System.out.println(user.getClass());                    // class User
        System.out.println(specificUser.getClass());            // class SpecificUser
        System.out.println(anotherSpecificUser.getClass());     // class SpecificUser
    }
}

ผลลัพธ์

class User
class SpecificUser
class SpecificUser

กรณีใช้งาน: Reflection, ตรวจสอบประเภทอ็อบเจกต์ขณะรันไทม์ (runtime type checking), logging, debugging