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

对于大部分需要 VDB 格式的 String 的 API 方法,经常会有一种改为使用 IClassIMethod 对象的等效方法。例如,方法 F4FActions.addTaintedCallback(String,int) 要求其第一个参数为 VDB 格式的方法特征符 - 而 F4FActions.addTaintedCallback(IMethod,int) 则使用 IMethod 对象来标识此方法。因此,使用采用 IClassIMethod 对象的 API 方法可能会更方便,原因如下:

  1. 用户不需要担心这些方法的 VDB 格式化,因为这在内部处理。
  2. 在获取 IClassIMethod 对象时(例如,通过 F4FApp.getClassMethods()),请确保对应的类或方法在应用程序代码中实际存在。