Giả sử tôi có một lớp cơ sở có tên là Entity
. Trong lớp học đó, tôi có một phương pháp tĩnh để truy xuất tên lớp:Lấy tên của một phân lớp từ trong một siêu lớp
class Entity {
public static String getClass() {
return Entity.class.getClass();
}
}
Bây giờ tôi có một lớp khác mở rộng.
class User extends Entity {
}
Tôi muốn có được tên lớp của người dùng:
System.out.println(User.getClass());
Mục tiêu của tôi là để xem "com.packagename.User" đầu ra để giao diện điều khiển, nhưng thay vào đó tôi sẽ kết thúc với "com.packagename.Entity" vì lớp Entity đang được tham chiếu trực tiếp từ phương thức tĩnh.
Nếu đây không phải là phương pháp tĩnh, điều này có thể dễ dàng được giải quyết bằng cách sử dụng từ khóa this
trong lớp Entity
(ví dụ: return this.class.getClass()
). Tuy nhiên, tôi cần phương pháp này để tĩnh. Bất kỳ đề xuất về cách tiếp cận này?
Cảm ơn bạn đã làm rõ, tôi đoán tôi không biết đủ về cách các phương thức tĩnh biên dịch. Điều này giúp mọi thứ rõ ràng, tôi sẽ phải làm việc trên một giải pháp thay thế. –
+1, chính xác. Toàn bộ câu hỏi này được sinh ra từ một sự hiểu lầm về cách thức các phương thức tĩnh hoạt động. –