3

我正在使用 IField 接口的实现。我在理解“已解决的领域”时遇到问题——这是什么意思?甚至还有一个函数 isResolved(),它:

返回此字段是否表示已解析字段。如果某个字段已解析,则其键包含已解析的信息。

这是什么意思?解决这个词有没有第二个含义,我在字典和网上都找不到吗?

4

2 回答 2

0

已解决可能意味着“具有已解决的类型”,即当运行时类型已知时,具有泛型类型的字段得到解决

一些 jdt源代码中的提示

ResolvedBinaryMethod : Handle representing a binary method that is resolved.
The uniqueKey contains the genericSignature of the resolved method. Use BindingKey to decode it.

它在谈论泛型签名......似乎“已解决”与泛型类型有关:-)

于 2011-05-13T22:46:33.287 回答
0

“已解决”与绑定有关。引用 org.eclipse.jdt.core.dom.IBinding 的 javadoc

绑定表示 Java 语言中的命名实体。从编译器的角度来看,绑定的世界提供了程序结构的集成图。

简而言之,“绑定”是您唯一标识命名实体的方式,“键”是唯一信息。您可以在本教程中找到有关绑定的更多信息。

绑定很昂贵,因此它们并不总是“解决”,例如,在通过 org.eclipse.jdt.core.dom.ASTParser 创建 AST 时,您可以调用 ASTParser#setResolveBindings(boolean) 来指定是否需要绑定。因此,isResolved() 函数指示绑定信息是否可用,如果可用,则 getKey() 返回该唯一键。

于 2011-05-15T05:05:05.860 回答