VDB 格式

Framework for Frameworks API 中的方法要求代表類型名稱或方法簽章的 Strings 必須為 VDB 格式。VDB 類型名稱都是完整的來源層次名稱(例如,java.lang.String),或者,以內部類別的情況來說,是以錢幣符號來代表 ($)(例如,javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction)。在 .NET 中,使用 Framework for Frameworks API 時應該避免簡短名稱,例如 intstring。相反地,請使用完整名稱,例如 System.Int32System.String

VDB 方法簽章由下列兩個部分組成:

  1. 方法名稱,包括外層類別的完整名稱(例如,java.lang.String.substring)。
  2. 方法的描述子,指定參數類型和傳回類型。參數類型以括弧括住,以分號 (;) 隔開。右括弧後面接著冒號 (:),再接著傳回類型。

VDB 方法簽章範例:

java.lang.String.substring(int;int):java.lang.String

內部類別中的 VDB 方法簽章範例:

javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction.
    actionPerformed(ActionEvent):void

在要求 String 必須是 VDB 格式的大部分 API 方法中,通常會有可接受 IClassIMethod 物件做為代替的同等方法。例如,方法 F4FActions.addTaintedCallback(String,int) 要求第一個參數必須是 VDB 格式的方法簽章,而 F4FActions.addTaintedCallback(IMethod,int) 會以 IMethod 物件來識別方法。使用接受 IClassIMethod 物件的 API 方法可能較方便,理由如下:

  1. 使用者不必擔心這些方法是否為 VDB 格式,這是由內部處理。
  2. 在取得 IClassIMethod 物件時(例如,透過 F4FApp.getClassMethods()),就可以確定對應的類別或方法是否實際存在於應用程式碼中。