寻找实现javac重载决策算法的Java代码

时间:2011-12-15 21:30:56

标签: java overload-resolution

假设我有一个Object s(特别是Object[])数组和一个Constructor对象数组。

任何人都可以向我推荐一些可以查看Constructor对象的Java代码,并根据我的数组中对象的实际类型选择最具体的代码。换句话说,我想要javac用于在一组重载方法中进行选择的算法的实现。

1 个答案:

答案 0 :(得分:2)

您可以查看基于Java的Java编译器(我听说OpenJDK有一个)。

我认为您会发现名称解析比您想象的要复杂得多,尤其是当您包含泛型和类型擦除时。我怀疑你是否能够“轻松”解除这些代码并自行使用它。

大多数在语义上做任何事情的Java工具都使用类文件,其中所有类型的擦除和解析都发生了,因此他们可以避免知道如何执行此操作。 (仅查看​​类文件的缺点是那些工具根本无法修改源代码。)