2011-12-15 34 views
6

Giả sử tôi có một mảng là Object s (cụ thể là Object[]) và một mảng đối tượng Constructor.Tìm kiếm mã Java thực hiện thuật toán phân giải quá tải của javac

Ai có thể giới thiệu cho tôi một số mã Java có thể xem xét thông qua các đối tượng Constructor và chọn một trong các là cụ thể nhất đối với các loại thực tế của các đối tượng trong mảng của tôi với. Nói cách khác, tôi muốn thực hiện một thuật toán mà sử dụng javac để chọn trong số một tập hợp các phương thức quá tải.

+1

1. Ai nói nó thực hiện trong Java? 2. Tại sao không chỉ cần tham khảo [JLS] (http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.12.2)? –

Trả lời

2

Bạn có thể nhìn vào một trình biên dịch Java dựa trên nền Java (Tôi nghe OpenJDK có một).

Tôi nghĩ rằng bạn sẽ thấy rằng độ phân giải tên là xa phức tạp hơn so với bạn tưởng tượng, đặc biệt là khi bạn bao gồm Generics và loại tẩy xoá. Tôi nghi ngờ bạn sẽ có thể "dễ dàng" nâng mã này ra và sử dụng nó trên của riêng bạn.

Hầu hết các công cụ Java mà làm bất cứ điều gì ngữ nghĩa tập tin lớp học sử dụng sâu, nơi mà tất cả những gì loại tẩy xoá và độ phân giải đã xảy ra, vì vậy họ có thể tránh biết làm thế nào để làm điều này. (Nhược điểm để chỉ tìm kiếm trong các tập tin lớp là những công cụ không thể sửa đổi mã nguồn ở tất cả).

+0

Tôi không nghĩ rằng generics đi vào nó, cho rằng họ là cú pháp đường cho "không có generics ở tất cả". –

Các vấn đề liên quan