เมธอด 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