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
对于大部分需要 VDB 格式的 String
的 API 方法,经常会有一种改为使用 IClass
或 IMethod
对象的等效方法。例如,方法 F4FActions.addTaintedCallback(String,int)
要求其第一个参数为 VDB 格式的方法特征符 - 而 F4FActions.addTaintedCallback(IMethod,int)
则使用 IMethod
对象来标识此方法。因此,使用采用 IClass
和 IMethod
对象的 API 方法可能会更方便,原因如下:
- 用户不需要担心这些方法的 VDB 格式化,因为这在内部处理。
- 在获取
IClass
或IMethod
对象时(例如,通过F4FApp.getClassMethods()
),请确保对应的类或方法在应用程序代码中实际存在。