2011-12-15 28 views
6

假設我有一個Object s(特別是,一個Object[])和一個Constructor對象數組。尋找實現javac的重載分辨率算法的Java代碼

任何人都可以引用一些Java代碼,可以查看通過構造函數對象,並選擇一個是最具體的關於我的數組中的對象的實際類型。換句話說,我希望javac用於在一組重載方法中進行選擇的算法的實現。

+1

1.誰說它是用Java實現的? 2.爲什麼不參考[JLS](http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.12.2)? – 2011-12-15 21:34:42

回答

2

你可以看看基於Java的Java編譯器(我聽說OpenJDK有一個)。

我想你會發現名稱解析比你想象的要複雜得多,特別是當你包含泛型和類型刪除。我懷疑你能夠「輕鬆」解除這些代碼並單獨使用它。

大多數Java語言工具在語義上深層使用類文件,所有類型的擦除和解析都發生了,所以他們可以避免知道如何執行此操作。 (僅在類文件中查找的缺點是那些工具根本無法修改源代碼)。

+0

我不認爲泛型進入了它,因爲它們是「沒有泛型」的語法糖。 – 2011-12-16 01:40:19