【问题标题】:Looking for Java code implementing javac's overload resolution algorithm寻找实现 javac 的重载解析算法的 Java 代码
【发布时间】:2011-12-15 21:30:56
【问题描述】:

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

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

【问题讨论】:

  • 1.谁说它是用 Java 实现的? 2. 为什么不直接引用the JLS

标签: java overload-resolution


【解决方案1】:

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

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

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

【讨论】:

  • 我认为泛型不会出现在其中,因为它们是“根本没有泛型”的语法糖。
猜你喜欢
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 2011-05-01
  • 2012-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多