Tôi không hiểu rất rõ những gì bạn đang cố gắng làm nhưng tôi nghĩ rằng có một số câu trả lời có thể dù sao:
Bạn có thể quan tâm đến các JNI Method Descriptors, một trong những khác nhau string formats sử dụng trong nội bộ bởi JVM (và bởi các thư viện JNI) để xác định các phần tử Java.
Rất khó để biết về những gì bạn đang nói về. "Id phương thức" có thể là tham chiếu cho đối tượng java.lang.reflect.Method
hoặc có thể là bộ mô tả phương pháp được đề cập bên dưới hoặc bất kỳ thứ gì khác. Bạn đã đọc về nó ở đâu?
Tôi nghi ngờ có bảng như vậy bên trong JVM. Ý tôi là, tôi nghi ngờ có một toàn cầu bảng, bởi vì hầu như luôn luôn bạn lấy một phương pháp từ một lớp học, ngay cả khi đối phó với nó bên trong JVM, vì vậy nó là hợp lý để tin rằng phương pháp này được lưu trữ trong lớp.Đó là likewhen chúng tôi sử dụng phản ánh để lấy một phương pháp:
Class clazz = String.class;
Method method = clazz.getDeclaredMethod("charAt", Integer.TYPE);
System.out.println(method.getName());
Lưu ý rằng tôi hỏi lớp String
cho phương pháp, thay vì hỏi một số lớp util để cho tôi phương pháp charAt
, mà nhận được một int
và là từ lớp học String
.
Nói cách khác, tuple xác định của bạn là gần như chính xác - nó chỉ không có một lớp:
(methodName, methodParameters)
và, thay vì lấy phương pháp từ JVM đi qua các lớp và sau đó tên phương pháp và sau đó các kiểu tham số, bạn lấy phương thức trực tiếp từ lớp, tạo cho lớp tên phương thức và các kiểu tham số. Một sự khác biệt tinh tế, chắc chắn, nhưng tôi nghĩ đó là những gì bạn đang thắc mắc.
Điều này hiển nhiên ngay cả trong các mô tả JNI mà tôi đã đề cập bên dưới. Ví dụ, phương pháp
long f(int i, Class c);
được đại diện bởi các mô tả sau:
"(ILjava/lang/Class;)J"
Lưu ý rằng không có tham chiếu đến lớp của phương pháp.
excellent documentation on the class file format (đã được chỉ bởi @Lawence) có thể cung cấp cho bạn một số thông tin chi tiết. Tôi khuyên bạn nên đọc nó đầy đủ.
Câu hỏi của bạn quá mơ hồ. Bạn đang nói về việc xác định phương thức trong trình biên dịch? Trong tệp ".class"? Trong chương trình thực thi? –