在Biojava中,无论字母表和标记是通过何种方式建立的,相同的字母表和标记都是规范一致的。这意味着如果在不同时间创建的两个DNA字母表(或者是来自那些字母表中的标记)对象是相等的,通过调用.equals()方法和==操作符都可以得到这个结果。这对来自PROTEIN字母表和PROTEIN-TERM字母表或IntergerAlphabet和SubIntegerAlphabet的标记都成立。
上述甚至对于运行在不同虚拟机上的对象都成立(这要感谢JAVA的序列化技术),这意味着Biojava可以进行RMI远程调用(这点对于开发分布式系统非常有好处)。
[code lang="java"]
import org.biojava.bio.symbol.*;
import org.biojava.bio.seq.*;
public class Canonical {
public static void main(String[] args) {
// 通过两种不同的方法得到DNA字母表
Alphabet a1 = DNATools.getDNA();
Alphabet a2 = AlphabetManager.alphabetForName("DNA");
// 判断是否相同
System.out.println("equal: "+ a1.equals(a2));
// 判断是否一致
System.out.println("canonical: "+ (a1 == a2));
}
}
[/code]