Zac*_*ack 6 java overload-resolution
假设我有一个Object
s(特别是一个Object[]
)数组和一个Constructor对象数组.
任何人都可以向我推荐一些可以查看Constructor对象的Java代码,并根据我的数组中对象的实际类型选择最具体的Java代码.换句话说,我想要一种算法的实现,javac
用于在一组重载方法中进行选择.
您可以查看基于 Java 的 Java 编译器(我听说 OpenJDK 有一个)。
我想您会发现名称解析比您想象的要棘手得多,尤其是当您包含泛型和类型擦除时。我怀疑您是否能够“轻松地”取出这段代码并自己使用它。
大多数执行深度语义操作的 Java 工具都使用类文件,所有类型擦除和解析都发生在类文件中,因此它们可以避免知道如何执行此操作。(仅查看类文件的缺点是这些工具根本无法修改源代码)。