Java của tôi bị gỉ nên hãy chịu theo tôi. Trong C Tôi có thể làm:Sử dụng lớp hiện tại trong khai báo phương thức tĩnh Java
int someFunc(void)
{
printf("I'm in %s\n", __func__);
}
Trong Java, tôi có thể lexically nhận được tên hoặc loại lớp hiện đang được xác định. Ví dụ: nếu tôi có:
import org.apache.log4j.Logger;
class myClass {
private static final Logger logger = Logger.getLogger(myClass.class);
...
}
Có vẻ như sai khi lặp lại "myClass" trong đối số getLogger(). Tôi muốn "getLogger (__ CLASS__)" hoặc "getLogger (this.class)" hoặc một cái gì đó. (Tôi biết cả hai đều là ngớ ngẩn nhưng họ nên trỏ đến những gì tôi đang tìm kiếm.) Trình biên dịch Java thực sự không biết lớp đó là gì ở giữa vì nó xử lý nguồn?
Bạn cũng có thể có nó như biến dụ và sử dụng "this.getClass() ". Sử dụng thuộc tính instance sẽ là một ý tưởng tốt hơn, trừ khi tất nhiên bạn thực sự cần nó như là một thuộc tính class. – OscarRyz
trình biên dịch biết lớp đó là gì, nhưng bạn không biết lớp bạn đang viết là gì? xin lỗi, chỉ đùa ... Tôi đã có vấn đề đó - gần như cùng một mã - nhưng tôi đã không tìm thấy bất cứ điều gì tốt hơn so với MyClass.class: -/cần phải có một IDE tốt đẹp với các mẫu mã và refactoring ... –
Tôi muốn Java đã có điều này. Tôi muốn giới thiệu cú pháp 'static.class'. – Boann