3

IField インターフェイスの実装を使用しています。「解決されたフィールド」を理解するのに問題があります - どういう意味ですか? 関数 isResolved() も存在します。

このフィールドが解決されたフィールドを表すかどうかを返します。フィールドが解決された場合、そのキーには解決された情報が含まれます。

どういう意味ですか?私が見つけられない、辞書でもオンラインでも見つからない、解決されたという言葉の2番目の意味はありますか?

4

2 に答える 2

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 に答える
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 に答える