API 是调用方和被调用方之间的约定。最常见的 API 滥用是由于调用方未能遵守此约定的终止导致的。例如,如果某个程序在调用 chroot() 后未能调用 chdir(),则违反了用于指定如何安全地更改活动根目录的约定。库滥用的另一个典型示例是期望被调用方向调用方返回可信的 DNS 信息。在这种情况下,调用方通过对被调用方行为做出某种假设(返回值可用于身份验证目的)滥用其 API。另一方也可能违反调用方-被调用方约定。例如,如果编码器子类化 SecureRandom 并返回一个非随机值,则将违反此约定。
null
进行比较的约定。Object.equals()
、Comparable.compareTo()
和 Comparator.compare()
时,如果其参数为 null
,则必须返回一个指定值。不遵守该约定可能会导致发生意外的行为。equals()
方法,但不会将其参数与 null
进行比较。
public boolean equals(Object object)
{
return (toString().equals(object.toString()));
}