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

Zac*_*ack 6 java overload-resolution

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

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

Ira*_*ter 2

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

我想您会发现名称解析比您想象的要棘手得多,尤其是当您包含泛型和类型擦除时。我怀疑您是否能够“轻松地”取出这段代码并自己使用它。

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