Bạn có thể lấy chuỗi như thế này:
Car.class.getDeclaredMethods()[0].getName();
Đây là đối với trường hợp của một phương pháp duy nhất trong lớp học của bạn. Nếu bạn muốn để lặp qua tất cả các phương pháp khai báo, bạn sẽ phải lặp qua mảng trả về bởi Car.class.getDeclaredMethods()
:
for (Method method : Car.class.getDeclaredMethods()) {
String name = method.getName();
}
Bạn nên sử dụng getDeclaredMethods()
nếu bạn muốn xem tất cả trong số họ, getMethods()
sẽ trở lại chỉ công cộng phương pháp.
Và cuối cùng, nếu bạn muốn xem tên của phương pháp, được thực hiện vào lúc này, bạn nên sử dụng mã này:
Thread.currentThread().getStackTrace()[1].getMethodName();
này sẽ nhận được một stack trace cho thread hiện hành và lợi nhuận tên của phương thức ở trên cùng của nó.
Cảm ơn, tôi e rằng tôi không thực sự muốn bị ràng buộc với điều "một phương pháp mỗi lớp" ... – drozzy
Bạn có thể có được tất cả các phương pháp của lớp học hoặc chỉ phương pháp đang được thực hiện tại thời điểm này. Xem chỉnh sửa của tôi. :) – Malcolm
Cảm ơn. Hiếu kỳ. Nhưng tôi cần một tên của một phương thức hiện không thực hiện. Nó có vẻ như java không cung cấp một cách để làm điều đó ... – drozzy