VDB 格式
Framework for Frameworks API 中的方法要求代表類型名稱或方法簽章的 Strings
必須為 VDB 格式。VDB 類型名稱都是完整的來源層次名稱(例如,java.lang.String
),或者,以內部類別的情況來說,是以錢幣符號來代表 ($
)(例如,javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction
)。在 .NET
中,使用 Framework for Frameworks API 時應該避免簡短名稱,例如 int
和 string
。相反地,請使用完整名稱,例如 System.Int32
和 System.String
。
VDB 方法簽章由下列兩個部分組成:
- 方法名稱,包括外層類別的完整名稱(例如,
java.lang.String.substring
)。 - 方法的描述子,指定參數類型和傳回類型。參數類型以括弧括住,以分號 (
;
) 隔開。右括弧後面接著冒號 (:
),再接著傳回類型。
VDB 方法簽章範例:
java.lang.String.substring(int;int):java.lang.String
內部類別中的 VDB 方法簽章範例:
javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction.
actionPerformed(ActionEvent):void
在要求 String
必須是 VDB 格式的大部分 API 方法中,通常會有可接受 IClass
或 IMethod
物件做為代替的同等方法。例如,方法 F4FActions.addTaintedCallback(String,int)
要求第一個參數必須是 VDB 格式的方法簽章,而 F4FActions.addTaintedCallback(IMethod,int)
會以 IMethod
物件來識別方法。使用接受 IClass
和 IMethod
物件的 API 方法可能較方便,理由如下:
- 使用者不必擔心這些方法是否為 VDB 格式,這是由內部處理。
- 在取得
IClass
或IMethod
物件時(例如,透過F4FApp.getClassMethods()
),就可以確定對應的類別或方法是否實際存在於應用程式碼中。